Tensorflow 应用技术考试题目 一、实操题(100分) 1.实现获取fashion_mnist数据集,并对数据集归一化;(20分) 2.实现数据集的划分;(10分) 3.使用TensorFlow实现CNN神经网络构建, 其中:网络结构为2个隐层,每层进行2*2的最大池化;(30分) 4.构建损失函数;(15分) 5.实现模型训练,输出训练集损失、验证集损失及准确率(25分)
时间: 2023-12-30 20:03:06 浏览: 30
1. 实现获取fashion_mnist数据集,并对数据集归一化:
```python
import tensorflow as tf
from tensorflow import keras
# 加载fashion_mnist数据集
fashion_mnist = keras.datasets.fashion_mnist
(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()
# 数据归一化
train_images = train_images / 255.0
test_images = test_images / 255.0
```
2. 实现数据集的划分:
```python
from sklearn.model_selection import train_test_split
train_images, val_images, train_labels, val_labels = train_test_split(train_images, train_labels, test_size=0.2, random_state=42)
```
3. 使用TensorFlow实现CNN神经网络构建,其中:网络结构为2个隐层,每层进行2*2的最大池化:
```python
model = keras.Sequential([
keras.layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)),
keras.layers.MaxPooling2D((2, 2)),
keras.layers.Conv2D(64, (3, 3), activation='relu'),
keras.layers.MaxPooling2D((2, 2)),
keras.layers.Flatten(),
keras.layers.Dense(64, activation='relu'),
keras.layers.Dense(10)
])
```
4. 构建损失函数:
```python
loss_fn = keras.losses.SparseCategoricalCrossentropy(from_logits=True)
```
5. 实现模型训练,输出训练集损失、验证集损失及准确率:
```python
model.compile(optimizer='adam', loss=loss_fn, metrics=['accuracy'])
history = model.fit(train_images, train_labels, epochs=10, validation_data=(val_images, val_labels))
# 输出训练集损失、验证集损失及准确率
train_loss, train_acc = model.evaluate(train_images, train_labels, verbose=2)
val_loss, val_acc = model.evaluate(val_images, val_labels, verbose=2)
print('\nTrain loss:', train_loss)
print('Train accuracy:', train_acc)
print('Validation loss:', val_loss)
print('Validation accuracy:', val_acc)
```