深度学习编程笔记:Tensorflow2.1基础知识---搭建神经网络八股以及小案例实战

利用Tensorflow API tf.keras搭建网络八股(六步法)六步法:导入相关的模块,也就是 import加载训练集和测试集,也就是加载train(x_train数据、y_train标签)、test(x_test数据、y_test标签)数据前向传播(搭建神经网络结构,逐层描述每层网络),也就是model = tf.keras.models.Sequential配置训练时所用的...
摘要由CSDN通过智能技术生成

利用Tensorflow API tf.keras搭建网络八股(六步法)

六步法:

  1. 导入相关的模块,也就是 import
  2. 加载训练集和测试集,也就是加载train(x_train数据、y_train标签)、test(x_test数据、y_test标签)数据
  3. 前向传播(搭建神经网络结构,逐层描述每层网络),也就是model = tf.keras.models.Sequential
  4. 配置训练时所用的方法(也就是优化器,损失函数,评测指标的选择),也就是model.compile
  5. 进行数据的训练(告诉训练集和测试集的输入特征和标签,batch的值,以及迭代多少次数据集),也即是model.fit
  6. 利用summary()函数打印出网络的结构和参数统计

对上述用到的tf.keras模块中的函数进行进一步的介绍

  1. model = tf.keras.models.Sequential([网络结构]) #描述各层网络
    网络结构举例:
    1. 拉直层:tf.keras.layers.Flatten()
    2. 全连接层:tf.keras.layers.Dense(神经元个数,activation=“激活函数”,kernel_regularizer=“正则化函数”)
      activation可选的字符串:“relu”、“softmax”、“sigmoid”、“tanh”
      kernel_regularizer可选:tf.keras.regularizers.l1()、tf.keras.regularizers.l2()
    3. 卷积层:tf.keras.layers.Conv2D(filters = 卷积核个数,kernel_size = 卷积核尺寸,strides = 卷积步长,padding = “valid”or“same”)
    4. LSTM层:tf.keras.layers.LSTM()
  2. model.compile(optimizer=优化器,loss=损失函数,metrics=[“准确率”])
    1. Optimizer可选:
      i. ‘sgd’ or tf.keras.optimizers.SGD(lr=学习率,momentum=动量参数)
      ii. 'adagrad’or tf.keras.optimizers.Adagrad(lr=学习率)
      iii. 'adadelta’or tf.keras.optimizers.Adadelta(lr=学习率)
      iv. 'adam’or tf.keras.optimizers.Adam(lr=学习率,beta_1=0.9,beta_1=0.999)
    2. loss可选:
      i. ‘mse’ or tf.keras.losses.MeanSquaredError()
      ii. ‘sparse_categorical_crossentropy’ or tf.keras.losses.SparseCategoricalCrossentropy(from_logots=False)
    3. Metrics可选:
      i. ‘accuracy’:y_和y都是数值,如y_=[1] y=[1]
      ii. ‘categorical_accuracy’:y_和y都是独热码(概率分布),如y_=[0,1,0] y=[0.256,0.695,0.048]
      iii. ‘sparse_categorical_accuracy’:y_是数值,y是独热码(概率分布),y_=[1] y=[0.256,0.695,0.048]
  3. model.fit(训练集的输入特征,训练集的标签,batch_size=,epochs=,validation_data=(测试集的输入特征,测试集的标签),validation_split=从训练集划分多少比例给测试集,validation_freq=多少次epoch测试一次)
  4. model.summary() 打印出网络的结构和参数统计

案例

案例1:利用tf.keras实现鸢尾花分类

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
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值