主要参考链接:
https://www.cnblogs.com/sun-a/p/13382713.html
https://blog.csdn.net/weixin_43939952/article/details/104037604
https://blog.csdn.net/qq_43656233/article/details/106035569
https://blog.csdn.net/yunfeather/article/details/106461754
https://blog.csdn.net/weixin_40244676/article/details/105091539
该篇内容主要是对参考链接1的补充与说明,其余链接主要为支撑链接,作为小白,花了一下午把这些整理清晰,希望分享给大家。
大纲
- 导库
- 训练集与测试集的划分及打散
- 模型构建
- 惩罚函数构建
- 模型训练
- 模型参数情况打印
- 测试集测试
导入库
数据在sklearn,如果没有的话自己安装一下
import tensorflow as tf
from sklearn import datasets
import numpy as np
from sklearn.model_selection import train_test_split
导入数据集
train_data = datasets.load_iris().data
train_target = datasets.load_iris().target
使用sklearn将数据集分割成训练集和测试集,训练集与测试集比例为0.3
x_train,x_test, y_train, y_test = train_test_split(train_data,train_target,test_size=0.3, random_state=0)
数据打散
使用np.random.seed将训练集打散,注意这里使用相同的数值(116),这样可以将x_train和y_train对应上,将数据集打散对测试精度有帮助
np.random.seed(116)
np.random.shuffle(x_train)
np.random.seed(116)
np.random.shuffle(y_train)
建立神经网络模型
这里使用一层全连接层作为演示,如果需要创建两层,可以在第一层后面再加,或者使用add增加
函数讲解参考链接:https://blog.csdn.net/qq_43656233/article/details/106035569
model = tf.keras.Sequential([
tf.keras.layers.Dense(3, activation='softmax', kernel_regularizer=tf.keras.regularizers.l2())
])
配置惩罚函数及参数
函数讲解参考链接:https://blog.csdn.net/yunfeather/article/details/106461754
model.compile(optimizer=tf.keras.optimizers.SGD(lr=0.1),
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False),
metrics=[tf.keras.metrics.sparse_categorical_accuracy])
配置训练参数,如数据集,训练次数,batch_size等
函数讲解参考链接:https://blog.csdn.net/weixin_40244676/article/details/105091539
model.fit(x_train, y_train, batch_size=32, epochs=500,
validation_freq=20, validation_split=0.2)
输出模型各层的参数状况
model.summary()
对测试集进行测试
accuracy = model.evaluate(x_test,y_test)