#想要搭建属于自己的神经网络模型么,跟我做六步就好
#入门课程可看Tensorflow2.0
#课程很好如有不懂可私信交流
总览
六步法的简要内容
import 第一步引入相关模块
train,test 第二步说明训练集(特征)和测试集(标签)是什么
model = tf.keras.models.Sequential 第三步在Sequential()中搭建网络结构,逐层描述每层网络
model.compile 第四步告知选择那种 (优化器) 和 (损失函数) (评测指标)
model.fit 第五步执行训练过程 告知训练集和测试集的输入特征和标签,告知每个 batch是多少 迭代多少次
model.summary 第六步用summary()打印出网络的结构和参数统计
第一二步就不做过多说明
第三步:在Sequential()中搭建网络结构
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(filters=卷积核个数,kernel_size=卷积核尺寸,
strides=卷积步长,padding="valid"or"same")
LsTM层:tf.keras.layers.LSTM()
第四步:选择那种 (优化器) 和 (损失函数) (评测指标)
model.compile(optimizer=优化器,
Ioss=损失函数
metrics=["准确率"])
Optimizeri可选:
'sgd'or tf.keras.optimizers.SGD(lr=学习率,momentum=动量参数)
'adagrad'or tf.keras.optimizers.Adagrad(lr=学习率)
'adadelta'or tf.keras.optimizers.Adadelta(lr=学习率)
'adam'or tf.keras.optimizers.Adam(lr=学习率,beta_1=0.9,beta_2=0.999)
loss可选:
'mse'or tf.keras.losses.MeanSquaredError()
'sparse_categorical_crossentropy'or tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False)
Metrics可选:
'accuracy':y_和y都是数值,如y=[1] y=[1]
'categorical_accuracy':y_和y都是独热码(概率分布),如y_=[0,1,0] y=[0.256,0.695,0.048]
'sp2se_categorical_accuracy':y_是数值,y是独热码(概率分布),如y=[1] y=[0.256,0.695,0.048]
第五步:执行训练过程 告知训练集和测试集的输入特征和标签,告知每个batch是多少 迭代多少次
model.fit(训练集的输入特征,训练集的标签,
batch_size= , epochs= ,
validation_data=(测试集的输入特征,测试集的标签),
validation_split=从训练集划分多少比例给测试集,
validation_freq=多少次epochi测试一次)
第六步:用summary()打印出网络的结构和参数统计
summary()函数可以打印出网络的结构和参数统计
总结
就是这六步了,后面直接添加或者修改就行
具体代码如下可根据自己情况改动
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)
np.random.seed(116)
np.random.shuffle(y_train)
tf.random.set_seed(116)
model = tf.keras.models.Sequential([
tf.keras.layers.Dense(3, activation='softmax', kernel_regularizer=tf.keras.regularizers.l2())
])
model.compile(optimizer=tf.keras.optimizers.SGD(lr=0.1),
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False),
metrics=['sparse_categorical_accuracy'])
model.fit(x_train, y_train, batch_size=32, epochs=500, validation_split=0.2, validation_freq=20)
model.summary()
制作不易请给个赞呗~
标签:API,keras,random,Sequential,train,tf,model From: https://blog.csdn.net/2301_81866263/article/details/139608293