数据来源: keras.datasets.fashion_mnist 其中数据涵盖了10个类别,单间服装的分辨率(28x28像素) 步骤和部分代码分析: 1.读取数据 2.进行模型编写: 双层:128神经元, 全链接层10个类别输出 Dense(128, activation=tf.nn.relu) 3.选择SGD优化器 4.训练和评估 5.打印模型结构 6.保存模型(model.save_weights): a)保存成ckpt b)保存成h5文件用完整代码回答上述问题,并且用200字来书写实验总结
时间: 2024-02-17 12:04:52 浏览: 80
以下是完整的代码实现:
```
import tensorflow as tf
from tensorflow import keras
import numpy as np
# 1. 读取数据
(train_images, train_labels), (test_images, test_labels) = keras.datasets.fashion_mnist.load_data()
# 2. 模型编写
model = keras.Sequential([
keras.layers.Flatten(input_shape=(28, 28)), # 将 28*28 的矩阵拉成一行向量
keras.layers.Dense(128, activation=tf.nn.relu), # 第一层全连接层,128 个神经元
keras.layers.Dense(10, activation=tf.nn.softmax) # 第二层全连接层,输出 10 个类别的概率
])
# 3. 选择优化器
model.compile(optimizer='sgd',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
# 4. 训练和评估
model.fit(train_images, train_labels, epochs=10)
test_loss, test_acc = model.evaluate(test_images, test_labels)
print('Test accuracy:', test_acc)
# 5. 打印模型结构
model.summary()
# 6. 保存模型
# 保存成 ckpt
model.save_weights('./model.ckpt')
# 保存成 h5 文件
model.save('./model.h5')
```
实验总结:
本次实验通过使用 TensorFlow 搭建简单的神经网络模型,实现了对 Fashion-MNIST 数据集的分类任务。通过搭建双层的神经网络,以及使用 SGD 优化器对模型进行训练,最终达到了 88% 的准确率。在模型训练过程中,我们可以使用 TensorBoard 查看模型的训练情况,以便更好地调参和优化模型。同时,我们还学习了如何将模型保存成 ckpt 和 h5 文件,方便我们在以后的使用中进行调用和部署。总之,这是一次非常有收获的实验,让我对神经网络的训练和部署有了更加深入的理解。
阅读全文