tensorflow学习笔记
hhysmqyj
这个作者很懒,什么都没留下…
展开
-
循环神经网络
循环核参数时间共享,循环层提取时间信息。三个参数Wxh、Whh、Why前向传播的时候不更新,反向传播的时候更新。当中间的循环核层数等信息固定后,输入输出维度固定。循环计算层数是向着输出方向生长,多个循环核链接。对于return_sequences不同情况下的例子样本:样本有两种方式一种是独热码,类似于下边代码给出的例子:input_word = "abcde"w_to_id = {'a': 0, 'b': 1, 'c': 2, 'd': 3, 'e': 4} # 单词映射到数原创 2022-02-17 20:33:09 · 437 阅读 · 0 评论 -
7、卷积神经网络
卷积卷积就是特征提取器感受野因为感受野,所以常用两个33的卷积核代替55的一个卷积核(当图像高和宽大于10)批标准化卷积神经网络在训练的时候数据希望可以趋于0附近,更能体现网络特征,但往往数据会落入激活函数中的非线性区(也就是数据的均值不在0附近),此时激活函数很难反应出数据的特征,所以就需要将数据再次标准化,移到0附近,提高激活函数对数据的区分能力但是简单的数据的标准化会让数据完全的符合正态分布,这样的话数据就会完全落入激活函数的线性区,使激活函数的非线性特性无用武之地。所以在批标准化的时候原创 2022-02-13 17:13:51 · 598 阅读 · 0 评论 -
写tensorflow神经网络的时候遇到的问题
Could not create cudnn handle: CUDNN_STATUS_ALLOC_FAILED报错:tensorflow.python.framework.errors_impl.UnknownError: Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was p原创 2022-02-13 17:12:54 · 395 阅读 · 0 评论 -
6、使用class代替Sequential
5中介绍了六步搭建神经网络,但是Sequential顾名思义,只能搭建循序执行的网络,一些跳跃连接的网络无法执行,所以可以用class创建一个类。其中Model继承了tensorflow的model类self中定义所有网络层的模块call中调用...原创 2022-02-12 15:40:42 · 217 阅读 · 0 评论 -
5、用tf.keras搭建神经网络
标题使用tensorflow的API tf.keras搭建神经网络的六步import 相关模块制定x_train、y_train 和 test(输入特征和标签)model = tf.keras.models.Sequential 在这里面搭建神经网络模型,相当于走一遍前向传播model.compile:选什么优化器、什么损失函数、那种评测指标在model.fit()中执行训练过程,告知训练集和测试集的输入特征和标签,告知每个batch是多少,要迭代几次用model.summary()打印出网原创 2022-02-12 15:22:51 · 321 阅读 · 0 评论 -
4、手动实现四种优化器
优化器优化器是为了优化网络参数而设置的各种参数更新算法,主要围绕损失函数的梯度而计算的。SGDSGD主要是按照梯度下降的斜率来决定参数的更新。因为神经网络参数更新的目的就是找到使loss函数最小的地方,例如loss = w^2这种函数,你只要顺着梯度的下降方向调整你的参数就可以顺利找到x = 0这个最小值点。而在寻找的过程中,loss的梯度函数为2w,当x<0时,grad算出来是负数,此时w = w - lr * grad就可以向正确的方向更新参数。lr(learning rate)就是学习原创 2022-02-11 21:44:17 · 379 阅读 · 0 评论 -
3、学习的一个例子:神经网络实现鸾尾花的分类
神经网络实现鸾尾花的分类直接赋北京大学的代码,其实人家百度网盘都放出资源了,我这里记录一下,因为稍有改动和注释```python# 利用鸢尾花数据集,实现前向传播、反向传播,可视化loss曲线# 导入所需模块from sklearn import datasetsimport tensorflow as tfimport matplotlib.pyplot as pltimport numpy as np#导入数据集x_data = datasets.load_iris().data原创 2022-02-10 22:01:18 · 164 阅读 · 0 评论 -
学习tensorflow笔记1、梯度计算
1、梯度计算学习北京大学的mooc,记录笔记代码块:生成一个变量w初值为5,设定为可训练学习率lr大小会影响梯度下降的速度和步幅迭代次数epochimport tensorflow as tfimport matplotlib.pyplot as pltw = tf.Variable(tf.constant(5,dtype=tf.float32))lr = 0.9epoch = 40plt_show = []for epoch in range(epoch):# for epoc原创 2022-02-10 15:53:54 · 677 阅读 · 0 评论 -
2、张量运算
张量学习,记录ppt和自己的理解张量就是n维矩阵创建一个tensor注意这里创完的一个tensor的数据类型,有的时候需要数据类型转换。使用截断式(tf.random.truncated_normal)的好处是数据都在均值附近2.常用函数tf.cast可以将1中生成的张量数据类型转换,例如转为float32axis=n,对第n个维度操作,在一般使用中,第1个维度(编号0)是一小包数据,第二个维度编号1是数据的标号。例如:第一个维度是学生的详细信息,第二个维度是学生的编号。tf.原创 2022-02-10 21:33:36 · 620 阅读 · 0 评论