一、keras与eager执行模式
eager执行模式可以仅仅通过组装层就可以定义、训练并评估模型
二、Eager模式
在tf2.x中,默认执行的是eager模式
1.eager模式返回的是tf.Tensorf对象,而静态图模式执行回话后,返回的是Numpy数组对象
2.在eager模式中,print返回的tf.Tensor对象与静态图的区别:
静态图返回例子的是:
1. tf.GradientTape()自动微分运算
2. 自定义训练循环train()
定制train_step函数用在训练循环中:
def train(num_classes, batch_size):
"""
定制 训练循环
:param num_classes:
:return:
"""
# 加载模型
net = AlexNet(num_classes)
net.build((4,224,224,3))
# 构建数据集
dataset = make_dataset(10, 5, 4)
# 损失函数
# loss = tf.losses.CategoricalCrossentropy(from_logits=False) #标签是one-hot形式
loss = tf.losses.SparseCategoricalCrossentropy(from_logits=False) #标签不是one-hot形式
# 优化器
optimizer = tf.optimizers.Adam()
# 配置
step = tf.Variable(1, dtype=tf.int32, name="global_step")
accuracy = tf.metrics.Accuracy()
mean_loss = tf.metric