如何为预测_生成器中的step选择合适的值?

时间:2018-12-04 02:17:11

标签: python machine-learning keras neural-network conv-neural-network

因此,我在Keras中建立了卷积神经网络进行分类。我从keras的 ImageDataGenerator 包中的 flow_from_directory 函数加载训练,验证和测试图像。我能够完美地训练神经网络,并且使用 predict_generator 函数来预测测试图像(79,726张图像)的类标签。

所以我的代码如下:

network_output=model.predict_generator(test_set,steps=79726 ,verbose=1)

对于我的10个班级,每个班级的网络输出基本上都是概率。因此network_output的尺寸应为79726行10列,但是network_output的实际尺寸为255074行10列。哪个输出比应该的多!我发现使用steps参数进行输出更改的次数。如何选择step的值以获得正确的输出数量。

如果需要进一步的说明/代码以更好地解释问题,请在评论/答案部分中告诉我。

编辑:这是网络结构:input_size为32

from keras.models import Sequential
from keras.layers import Flatten,BatchNormalization
from keras.layers import Dense,Dropout
from keras.layers.convolutional import Conv2D
from keras.layers.pooling import MaxPooling2D 
from keras.layers.normalization import BatchNormalization

model = Sequential()
model.add(Conv2D(16, 3, input_shape = (input_size, input_size, 3),activation = 'relu'))      
model.add(Conv2D(16, 3, activation = 'relu'))
model.add(MaxPooling2D(pool_size=(2, 2), strides=(2,2)))
model.add(Conv2D(32, 3, activation = 'relu'))       
model.add(Conv2D(32, 3,  activation = 'relu'))
​model.add(MaxPooling2D(pool_size=(2, 2), strides=(2,2)))
model.add(Flatten())
model.add(Dense(10, activation='softmax'))
model.compile(optimizer = 'adam', loss = 'categorical_crossentropy', metrics = ['accuracy'])

0 个答案:

没有答案