tensorflow2.0

我学tensorflow学的网课是:【北京大学】Tensorflow2.0 对于新手入门的话我觉得是很不错的

tensorflow官网:初学者的 TensorFlow 2.0 教程  |  TensorFlow Core (google.cn)

我学习参考的笔记:Tensorflow学习 - 知乎 (zhihu.com)

以下内容是我对自己所学内容的一个复习:

class1

•当今人工智能主流方向——连接主义

•前向传播 •损失函数(初体会)

•梯度下降(初体会)

•学习率(初体会)

•反向传播更新参数

•Tensorflow 2 常用函数

一个具体过程:

搭建网络->喂入数据->前向传播->损失函数->梯度下降->反向传播

损失函数(loss function):预测值(y)与标准答案(y_)的差距。

梯度下降目的:想找到一组参数w和b,使得损失函数最小。

反向传播:从后向前,逐层求损失函数对每层神经元参数 的偏导数,迭代更新所有参数。

张量(Tensor):多维数组(列表)

阶:张量的维数

数据类型:

tf.int tf.float tf.bool tf.string

代码练习:如何创建一个Tensor

常用函数:

tf.cast()

tf.reduce_min()

tf.reduce_max()

tf.reduce_mean()

tf.reduce_sum()

tf.Variable()

tf.add()

tf.subtract()

tf.multiply()

tf.divide()

tf.square()

tf.pow()

tf.sqrt()

tf.matmul()

tf.data.Dataset.from_tensor_slices((输入特征, 标签))

tf.GradientTape()

axis=0(纵向)  axis=1(横向)

enumerate()

tf.one_hot()

tf.nn.softmax(x) 使输出符合概率分布

assign_sub

tf.argmax()

学会导入数据集

from sklearn.datasets import load_iris

x_data = datasets.load_iris().data 返回iris数据集所有输入特征

y_data = datasets.load_iris().target 返回iris数据集所有标签

神经网络实现鸢尾花分类

准备数据->搭建网络->参数优化->测试效果->acc/loss可视化

class2

本讲目标:学会神经网络优化过程,使用正则化减少过拟合, 使用优化器更新网络参数

•预备知识

•神经网络复杂度

•指数衰减学习率

•激活函数

•损失函数

•欠拟合与过拟合

•正则化减少过拟合

•优化器更新网络参数

tf.where(条件语句,真返回A,假返回B)

np.random.RandomState.rand(维度)

np.vstack (数组 1,数组2)

np.mgrid[ ] 

激活函数:

Sigmoid()

Tanh()

Relu()   初学者首选

Leaky Rule()

tf.losses.categorical_crossentropy(y_,y)

欠拟合与过拟合:

1.欠拟合的解决方法:

增加输入特征项

增加网络参数

减少正则化参数

2.过拟合的解决方法:

数据清洗

增大训练集

采用正则化

增大正则化参数

优化器:

SGD、SGDM、Adagrad、RMSProp、Adam

class3

本讲目标:使用八股搭建神经网络

•神经网络搭建八股

•iris代码复现

•MNIST数据集

•训练MNIST数据集

•Fashion数据集

用Tensorflow API:tf.keras搭建网络八股

import #导入相关的模块

train, test #输入数据集

model = tf.keras.models.Sequential  或 class MyModel(Model) model=MyModel #描述各层网络

model.compile #配置训练方法

model.fit #执行训练过程

model.summary #打印网络结构

class4

神经网络八股功能扩展:

1.自制数据集,解决本领域应用        generateds()

2.数据增强,扩充数据集        ImageDataGenrator()

3.断点续训,存取模型        load_weights()

4.参数提取,把参数存入文本        model.trainable_variables()

5.acc/loss可视化,查看训练效果

6.应用程序,给物识图

class5

目标:用CNN实现离散数据的分类

卷积计算过程

感受野

全零填充(Padding)

TF描述卷积计算层 批标准化(Batch Normalization, BN)

池化(Pooling)

舍弃(Dropout)

卷积神经网络

cifar10数据集

卷积神经网络搭建示例

实现LeNet、AlexNet、VGGNet、InceptionNet、ResNet五个经典卷积网络

卷积层

tf.keras.layers.Conv2D (
filters = 卷积核个数, 
kernel_size = 卷积核尺寸, #正方形写核长整数,或(核高h,核宽w)
strides = 滑动步长, #横纵向相同写步长整数,或(纵向步长h,横向步长w),默认1
padding = “same” or “valid”, #使用全零填充是“same”,不使用是“valid”(默认)
activation = “ relu ” or “ sigmoid ” or “ tanh ” or “ softmax”等 , #如有BN此处不写
input_shape = (高, 宽 , 通道数) #输入特征图维度,可省略
)


TF描述卷积层
model = tf.keras.models.Sequential([
Conv2D(6, 5, padding='valid', activation='sigmoid'),
MaxPool2D(2, 2),
Conv2D(6, (5, 5), padding='valid', activation='sigmoid'),
MaxPool2D(2, (2, 2)),
Conv2D(filters=6, kernel_size=(5, 5),padding='valid', activation='sigmoid'),
MaxPool2D(pool_size=(2, 2), strides=2),
Flatten(),
Dense(10, activation='softmax')
])

标准化:使数据符合0均值,1为标准差的分布。

批标准化:对一小批数据(batch),做标准化处理 。

一个很好用的口诀:

CBAPD:C卷积 B批标准化 A激活 P池化 D舍弃

经典卷积网络:

LeNet:1998

AlexNet:2012

VGGNet:2014

InceptionNet:2014

ResNet:2015

class6

本讲目标:用RNN实现连续数据的预测(以股票预测为例)

回顾卷积神经网络

循环神经网络

        循环核

        循环核时间步展开

        循环计算层

        TF描述循环计算层

        循环计算过程

实践:ABCDE字母预测

        One-hot

        Embedding

实践:股票预测

        RNN

        LSTM

        GRU

TF描述循环计算层

tf.keras.layers.SimpleRNN(记忆体个数,activation=‘激活函数’ ,
return_sequences=是否每个时刻输出ht到下一层)
activation=‘激活函数’ (不写,默认使用tanh)
return_sequences=True 各时间步输出ht
return_sequences=False 仅最后时间步输出ht(默认)
例:SimpleRNN(3, return_sequences=True)

Embedding —— 一种编码方法:

tf.keras.layers.Embedding(词汇表大小,编码维度)

循环神经网络:RNN LSTM GRU

  • 19
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值