使用softmax对cifar10数据集进行分类
时间: 2023-05-31 16:03:31 浏览: 173
人工智能-猫狗分类-CIFAR10数据集-百度飞桨PaddlePaddle
以下是对cifar10数据集进行分类的softmax模型的示例代码:
```
import tensorflow as tf
from tensorflow.keras.datasets import cifar10
from tensorflow.keras.utils import to_categorical
# 加载数据集
(x_train, y_train), (x_test, y_test) = cifar10.load_data()
# 数据预处理
x_train = x_train.astype('float32') / 255.0
x_test = x_test.astype('float32') / 255.0
y_train = to_categorical(y_train, 10)
y_test = to_categorical(y_test, 10)
# 定义模型
model = tf.keras.Sequential([
tf.keras.layers.Flatten(input_shape=(32, 32, 3)),
tf.keras.layers.Dense(256, activation='relu'),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dense(10, activation='softmax')
])
# 编译模型
model.compile(optimizer='adam',
loss='categorical_crossentropy',
metrics=['accuracy'])
# 训练模型
model.fit(x_train, y_train, epochs=10, validation_data=(x_test, y_test))
# 评估模型
test_loss, test_acc = model.evaluate(x_test, y_test)
print('Test accuracy:', test_acc)
```
在这个示例代码中,我们使用了一个简单的全连接神经网络,包括三个Dense层和一个Flatten层。其中第一个和第二个Dense层都使用了ReLU激活函数,而最后一个Dense层则使用了softmax激活函数来输出10个类别的概率分布。我们使用Adam优化器和交叉熵损失函数来训练模型,并在10个epoch后评估模型的准确度。最终测试准确度为约70%左右。
阅读全文