【发布时间】:2019-03-22 23:43:41
【问题描述】:
尝试预测纹理图像的标签,一张图像可以包含两个标签,如['banded','striped'],尽管大多数只有一个标签。
输出精度极高....第一个epoch可以有0.96 acc...但是预测数组都接近0,这是错误的,必须至少有一个数字是相关的接近1。
有人可以帮助我吗? 谢谢!!
这里是代码
Input image = (read by opencv)/255
Multi-labels = First LabelEncoder convert to numbers, then keras.to_categorical
然后我建立了一个CNN模型如下
X_train, X_test, y_train, y_test = train_test_split(img_array, test_value, test_size=0.1)
model = Sequential()
model.add(Conv2D(filters=64, kernel_size=(5, 5), padding='Same', data_format='channels_last', activation='relu',
input_shape=(300, 300, 3)))
model.add(MaxPool2D(pool_size=(2, 2)))
model.add(Conv2D(filters=32, kernel_size=(3, 3), padding='Same', activation='relu'))
model.add(MaxPool2D(pool_size=(2, 2)))
model.add(Flatten())
model.add(Dense(300, init ='uniform',activation='relu'))
model.add(Dense(285, init = 'uniform',activation='sigmoid'))
model.compile(optimizer='sgd', loss='binary_crossentropy', metrics=['accuracy'])
history = model.fit(X_train, y_train, batch_size= 24, epochs=10, validation_split=0.15)
【问题讨论】:
标签: python keras deep-learning