python tensorflow神经网络预训练保存模型,加载模型载入新的数据继续训练代码加注释
时间: 2024-02-27 22:53:57 浏览: 77
以下是基于TensorFlow的神经网络预训练代码,并加了注释,可以保存模型、加载模型并载入新的数据进行继续训练:
```python
import tensorflow as tf
# 载入数据集
mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
# 数据预处理
x_train, x_test = x_train / 255.0, x_test / 255.0
# 定义模型
model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(10)
])
# 定义损失函数
loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)
# 编译模型
model.compile(optimizer='adam',
loss=loss_fn,
metrics=['accuracy'])
# 加载或预训练模型
try:
model = tf.keras.models.load_model('my_model.h5')
print('已加载模型,继续训练...')
except:
print('未找到模型,重新预训练...')
# 预训练模型
model.fit(x_train, y_train, epochs=5)
# 保存模型
model.save('my_model.h5')
# 载入新的数据并继续训练
new_x_train, new_y_train = mnist.load_data()[0]
new_x_train, new_x_test = new_x_train / 255.0, x_test / 255.0
model.fit(new_x_train, new_y_train, epochs=5)
# 保存模型
model.save('my_model.h5')
# 评估模型
model.evaluate(x_test, y_test, verbose=2)
```
这段代码在预训练模型时,如果已经存在名为'my_model.h5'的模型文件,就会加载该模型并继续训练;如果不存在,则重新预训练。预训练完成后,将模型保存到'my_model.h5'文件中。接着,加载新的数据并对模型进行继续训练。最后,对模型进行了一次评估。
阅读全文