【发布时间】:2020-11-17 02:57:45
【问题描述】:
我正在构建一个用于二值图像分类的 TensorFlow 模型。我有两个标签“好”和“坏” 我希望模型应该为数据集中的每个图像输出,该图像是好是坏以及概率是多少
例如,如果我提交 1.jpg 并假设它是“好”图像。那么模型应该以 100% 的概率预测 1.jpg 为好,以 0% 的概率预测为坏。
到目前为止,我已经能够想出以下内容
model = tf.keras.models.Sequential([
tf.keras.layers.Conv2D(16, (3,3), activation='relu', input_shape=(input_shape, input_shape, 3)),
tf.keras.layers.MaxPool2D(2,2),
#
tf.keras.layers.Conv2D(32, (3,3), activation='relu'),
tf.keras.layers.MaxPool2D(2,2),
#
tf.keras.layers.Conv2D(64, (3,3), activation='relu'),
tf.keras.layers.MaxPool2D(2,2),
##
tf.keras.layers.Flatten(),
##
tf.keras.layers.Dense(512, activation='relu'),
##
tf.keras.layers.Dense(1, activation='sigmoid')
])
上述模型的输出形状是 1 x 1。但我认为这不符合我的目的。
我是这样编译模型的
model.compile(loss='binary_crossentropy',
optimizer=RMSprop(lr=0.001),
metrics=['accuracy'])
model_fit = model.fit(train_dataset,
steps_per_epoch=3,
epochs=30,
validation_data=validation_dataset)
非常感谢任何帮助。
【问题讨论】:
-
你是如何编译模型的?
-
我投票结束这个问题,因为它不是一个问题。
标签: python tensorflow image-processing classification