2.keras实现鸢尾花分类

学习神经网络八股构建法
用tensorflow (API) tf.keras 构建网络八股
七步法
1 import 导入需要使用的包
2 加载数据集 (数据预处理) 划分 train test
3 model = tf.keras.models.Sequential() # 加载模型:序列模型Sequential ()或 通用模型Model()
4 model.add(tf.keras.layers.Dense(units,activation)) # 增加你想要的网络层
5 model.compile(optimizer,loss,kernel_regularizer) # 增加优化器,损失函数 ,正则化
6 model.fit(train,test,batch_size,epochs,validation_split,validation_freq) # 进行训练
7 model.summary() # 打印模型图

from sklearn import datasets
import tensorflow as tf

iris_data = datasets.load_iris() # 加载数据集
x_data = iris_data['data']
y_data = iris_data['target']

model = tf.keras.Sequential()
model.add(tf.keras.layers.Dense(units=3,activation='softmax'))
model.compile(optimizer=tf.keras.optimizers.SGD(learning_rate=0.1),loss=tf.keras.losses.SparseCategoricalCrossentropy(),metrics=['sparse_categorical_accuracy'])
history = model.fit(x_data,y_data,batch_size=32,epochs=200,validation_split=0.2,validation_freq=20)
model.summary()


import matplotlib.pyplot as plt
plt.plot(history.history['loss'])
plt.xlabel('loss')
plt.ylabel('epoch')
plt.plot(history.history['sparse_categorical_accuracy'])
plt.xlabel('sparse_categorical_accuracy')
plt.ylabel('epoch')
plt.show()

2.keras实现鸢尾花分类_第1张图片

2.keras实现鸢尾花分类_第2张图片

2.keras实现鸢尾花分类_第3张图片

进行优化:
将数据打乱,加入正则化参数(看看能否提升参数)

from sklearn import datasets
import tensorflow as tf

import numpy as np

iris_data = datasets.load_iris() # 加载数据集
x_data = iris_data['data']
y_data = iris_data['target']

# 数据打乱
np.random.seed(1)
np.random.shuffle(x_data)
np.random.seed(1)
np.random.shuffle(y_data)
tf.random.set_seed(1)


model = tf.keras.Sequential()
model.add(tf.keras.layers.Dense(units=3,activation='softmax',kernel_regularizer=tf.keras.regularizers.l1()))
model.compile(optimizer=tf.keras.optimizers.SGD(learning_rate=0.1),loss=tf.keras.losses.SparseCategoricalCrossentropy(),metrics=['sparse_categorical_accuracy'])
history = model.fit(x_data,y_data,batch_size=32,epochs=500,validation_split=0.2,validation_freq=20)
model.summary()


import matplotlib.pyplot as plt
plt.plot(history.history['loss'])
plt.xlabel('loss')
plt.ylabel('epoch')
plt.show()
plt.plot(history.history['sparse_categorical_accuracy'])
plt.xlabel('sparse_categorical_accuracy')
plt.ylabel('epoch')
plt.show()

2.keras实现鸢尾花分类_第4张图片
可以看到效果得到提升!

你可能感兴趣的:(tensorflow,tensorflow,神经网络,深度学习)