机器学习全连接神经网络实现水果分类代码
时间: 2023-09-30 09:13:07 浏览: 131
好的,以下是一个简单的全连接神经网络实现水果分类的代码,使用Python语言和Keras库:
```python
# 导入所需库
import numpy as np
import keras
from keras.models import Sequential
from keras.layers import Dense, Dropout
from keras.optimizers import RMSprop
# 加载数据集
train_images = np.load('train_images.npy')
train_labels = np.load('train_labels.npy')
test_images = np.load('test_images.npy')
test_labels = np.load('test_labels.npy')
# 数据预处理
train_images = train_images.reshape(60000, 784)
test_images = test_images.reshape(10000, 784)
train_images = train_images.astype('float32')
test_images = test_images.astype('float32')
train_images /= 255
test_images /= 255
train_labels = keras.utils.to_categorical(train_labels, 10)
test_labels = keras.utils.to_categorical(test_labels, 10)
# 构建模型
model = Sequential()
model.add(Dense(512, activation='relu', input_shape=(784,)))
model.add(Dropout(0.2))
model.add(Dense(512, activation='relu'))
model.add(Dropout(0.2))
model.add(Dense(10, activation='softmax'))
# 编译模型
model.compile(loss='categorical_crossentropy',
optimizer=RMSprop(),
metrics=['accuracy'])
# 训练模型
history = model.fit(train_images, train_labels,
batch_size=128,
epochs=20,
verbose=1,
validation_data=(test_images, test_labels))
# 评估模型
score = model.evaluate(test_images, test_labels, verbose=0)
print('Test loss:', score[0])
print('Test accuracy:', score[1])
```
以上代码实现了一个包含两个隐藏层的全连接神经网络,每个隐藏层有512个神经元,使用了ReLU激活函数和Dropout正则化,输出层有10个神经元,使用了Softmax激活函数。采用的优化器是RMSprop,损失函数是交叉熵,评估指标是准确率。在训练过程中,每次从训练集中随机抽取128个样本进行训练,共训练20个epoch。最后,输出测试集上的损失和准确率。
需要注意的是,本代码仅供参考,具体实现方式可能因数据集、任务等不同而有所变化。
阅读全文