【发布时间】:2020-07-16 15:22:58
【问题描述】:
我是争论的初学者。我有这个问题:我必须在视频的每一帧中对 2 类的百分比进行分类。 我创建了一个包含大约 500 张图像(每类 250 张)的小型数据集,以及一个包含这些层的 CNN:
model = tf.models.Sequential()
model.add(tf.layers.Conv2D(32, kernel_size=(3, 3), activation='relu',input_shape=(224,224,3)))
model.add(tf.layers.MaxPooling2D((2, 2)))
model.add(tf.layers.Conv2D(64, (3, 3), activation='relu'))
model.add(tf.layers.MaxPooling2D((2, 2)))
model.add(tf.layers.Conv2D(128, kernel_size=(3, 3), activation='relu'))
model.add(tf.layers.MaxPooling2D((2, 2)))
model.add(tf.layers.Conv2D(256, kernel_size=(3, 3), activation='relu'))
model.add(tf.layers.MaxPooling2D((2, 2)))
model.add(tf.layers.Flatten())
model.add(tf.layers.Dense(512, activation='relu'))
model.add(tf.layers.Dropout(0.2))
model.add(tf.layers.Dense(2,activation='sigmoid'))
model.summary()
model.compile(loss='binary_crossentropy', optimizer=tf.optimizers.Adam(learning_rate=0.00001), metrics=['accuracy'])
1)使用binary_crossentropy + sigmoid还是binary_crossentropy + softmax更好?
2)那么最好使用迁移学习/微调或像这样从头构建CNN?
3)我在 DataAugmentation 中使用 ImageDataGenerator,因为数据集很小,对吗?
4) 我可以为 batch_size、steps_per_epochs、learning_rate 使用哪些值...我注意到使用 val_accuracy 的模型准确度提前到了 1.0,并且在预测中不会返回每个类的正确百分比,而是返回值像 [9.999e-1 4.444e-5]
【问题讨论】:
标签: tensorflow keras conv-neural-network transfer-learning