tf.keras.datasets
tf.keras.layers
tf.keras.losses
tf.keras.metrics
tf.keras.optimizers
tf.keras.metrics
首先要新建一个Metrics;
然后添加数据update_state;
然后添加结果result().numpy();
最后清零reset_states.
1.新建一个测量值meter
acc_meter = metrics.Accuracy() #准确度
loss_meter = metrics.Mean() #平均值
2.往测量值里添加数据
loss_meter.update_state(loss)
acc_meter.update_state(y, pred)
3.取出数据
print(step, 'loss:', loss_meter.result().numpy())
print(step, 'Evaluate Acc:', total_correct/total, acc_meter.result().numpy())
4.清除缓存
if step % 100 == 0:
print(step, 'loss:', loss_meter.result().numpy())
loss_meter.reset_states()
if step % 500 == 0:
total, total_correct = 0., 0
acc_meter.reset_states()
loss&optimize
compile指定了training的loss、优化器、评估指标的选择;fit可以完成这一系列流程;evaluate(test、valiation)用于测试;训练好的模型用predict完成预测。
network.compile(optimizer=optimizers.Adam(lr=0.01),
loss=tf.losses.CategoricalCrossentropy(from_logits=True),
metrics=['accuracy'])
network.fit(db, epochs=10,
validation_data=ds_val,
validation_freq=2)
network.evaluate(ds_val)
上一步的validation是在training中进行的,因为在training中也不知道什么时候停止,就会隔一段时间做一次test,根据validation返回的acc数据跳出training的循环。
当training终止之后,还需要对其进行验证,此时就可以使用数据集evaluate。
自定义层或网络
tf.keras.Sequential
tf.keras.layers.Layer
tf.keras.Model