【发布时间】:2021-04-09 13:28:49
【问题描述】:
我是机器学习的新手,我尝试训练一个模型来预测图像中人物的年龄。我在 4 个年龄段(0-18、18-40、40-65、65+)上训练了我的模型)。我最大的问题是我不知道如何优化。我把代码和一些结果放在下面。我在 10k 图像上训练了模型,验证集有大约 3.5k 图像,测试集有大约 3k 图像。我使用预学习模型作为基础模型,即“Mobilenet”,批量大小 = 32,时期 = 100,辍学 =.4。我尝试更新学习率,每 10 个时期模型未能减少验证损失,学习率减半(我们从值 0.001 开始)。我希望这种预测的准确性会更好,validation_loss 会低得多(validation_loss 对我来说约为 1)。image with results
欢迎提出任何建议。
if self.model_type == 'Mobilenet':
base_model = tf.keras.applications.mobilenet.MobileNet(include_top=False, input_shape=img_shape,
pooling='max', weights='imagenet', dropout=.4)
x = base_model.output
x = keras.layers.BatchNormalization(axis=-1, momentum=0.99, epsilon=0.001)(x)
x = Dense(self.neurons_a, activation='relu', kernel_initializer=tf.keras.initializers.GlorotUniform(seed=123))(x)
x = Dropout(rate=dropout, seed=123)(x)
output = Dense(self.class_count, activation='softmax',
kernel_initializer=tf.keras.initializers.GlorotUniform(seed=123))(x)
model = Model(inputs=base_model.input, outputs=output)
model.compile(Adamax(lr=self.lr), loss='categorical_crossentropy', metrics=self.metrics)
【问题讨论】:
标签: tensorflow machine-learning keras