六步法
1 import 2 train,test 3 model = Sequential() 4 model.compile() 5 model.fit() 6 model.evaluate()
Sequential()方法是一个容器,描述了神经网络的网络结构,在Sequential()的输入参数中描述从输入层到输出层的网络结构
model = tf.keras.models.Sequential([网络结构]) #描述各层网络
网络结构举例:
拉直层:tf.keras.layers.Flatten() #拉直层可以变换张量的尺寸,把输入特征拉直为一维数组,是不含计算参数的层
全连接层:tf.keras.layers.Dense(神经元个数,
activation = "激活函数“,
kernel_regularizer = "正则化方式)
其中:activation可选 relu 、softmax、 sigmoid、 tanh等
kernel_regularizer可选 tf.keras.regularizers.l1() 、tf.keras.regularizers.l2()
卷积层:tf.keras.layers.Conv2D(filter = 卷积核个数,
kernel_size = 卷积核尺寸,
strides = 卷积步长,
padding = ”valid“ or "same")
LSTM层:tf.keras.layers.LSTM()
#导入模块 import tensorflow as tf from sklearn import datasets import numpy as np #第二步,加载数据集 x_train = datasets.load_iris().data y_train = datasets.load_iris().target np.random.seed(116)#设置随机种子,每次结果都一样方便对照 np.random.shuffle(x_train)#使用shuffle()方法,让x_train乱序 np.random.seed(116)#设置随机种子,每次结果一样,方便对照 np.random.shuffle(y_train)#使用shuffle()方法,让输入y_train乱序 tf.random.set_seed(116) #第三步,models.Sequential() model = tf.keras.models.Sequential()#使用models.Sequential()搭建神经网络 tf.keras.layers.Dense(3, activation='softmax', kernel_regularizer=tf.keras.regularizers.l2()) #第四步,model.compile()编译 model.compile(optimizer=tf.keras.optimizers.SGD(lr=0.1),#使用SGD优化器,学习率为0.1 loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False),#配置损失函数 metrics=['sparse_categorical_accuracy'])#标注网络评价指标 #第五步,训练 model.fit(x_train, y_train, #告知训练集的输入以及标签 batch_size=32, #每一批的batch的大小为32 epochs=500, #迭代次数为500 validation_split=0.2,#从训练集中选20%作为测试集 validation_freq=20#没迭代20次训练集,要在测试集中验证一次准确率 ) #第六步,打印网络结果和参数 model.summary()