tensorflow2.1 神经网络六步法--顺序型神经网络结构

神经网络六步法

1、import

import tensorflow as tf
import numpy as np
from sklearn import datasets

2、_train ,_test

x_train = datasets.load_iris().data
y_train = datasets.load_iris().target

#ps:还需要对数据乱序

3、models.Sequential()

注意:Sequential()搭建的是顺序型神经网络结构

# 描述各层网络结构
model = tf.keras.models.Sequential(['网络结构'])

#网络结构
# 拉直层,把输入特征拉直成为一位数组
tf.keras.layers.Flatten()

# 全连接层,activation="激活函数" 用字符串形式给出,例如 activation="relu"
tf.keras.layers.Dense("神经元个数",activation="激活函数",kernel_constraint="正则化方式")

# 卷积层
tf.keras.layers.Conv2D(filters="卷积核个数",kernel_size="卷积核尺寸",strides="卷积步长", padding="valid or same")

# LSTM层
tf.keras.layers.LSTM()

4、model.compile()配置神经网络的训练方法

model = tf.keras.models.Sequential(['网络结构'])
model.compile(optimizer="优化器",loss="损失函数",metrics=["准确率"])

'''
optimizer可选:
    'sgd' 或 tf.keras.optimizers.SGD(lr=学习率,momentum=动量参数)
    'adagrad'   或   tf.keras.optimizers.Adadelta(lr=学习率)
    'adadelta'    或   tf.keras.optimizers.Adadelta(lr=学习率)
    'adam'        或   tf.keras.optimizers.Adam(lr=学习率,beta=0.9,beta_2=0.999)
    
loss可选:
    mse  或  tf.keras.losses.MeanSquaredError()
    'sparse_categorical_crossentropy' 或  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]
    'sparse_categorical_accuracy'   y是数值,y_是独热码,如 y = [1]  y_ = [0.256,0.695,0.048]
'''

5、model.fit()执行训练过程

import tensorflow as tf

model = tf.keras.models.Sequential(['网络结构'])

model.fit(训练集输入特征,训练集标签,batch_size=,epochs=,validation_data=(测试集的输入特征,测试集的标签),
          validation_split=从训练集中划分多少比例给测试集,validation_freq=多少次epoch测试一次)

6、model.summary() 打印网络结构和参数统计

model.summary()

六步法重构鸢尾花分类算法(顺序网络结构)

# 六步法实现鸢尾花分类

# 1、 import
import tensorflow as tf
import numpy as np
from sklearn import datasets

# 2、_train ,_test

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)

# 3、models.Sequential()
model = tf.keras.models.Sequential([
    tf.keras.layers.Dense(3, activation="softmax", kernel_regularizer=tf.keras.regularizers.l2())
])

# 4、model.compile()
model.compile(optimizer=tf.keras.optimizers.SGD(lr=0.1),
              loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False),
              metrics=["sparse_categorical_accuracy"])

# 5、model.fit()
# 指定了测试集为20%
model.fit(x_train,y_train,batch_size=32,epochs=500,validation_split=0.2,validation_freq=20)


# 6、model.summary()
model.summary()
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值