TensorFlow&python学习

1.python串讲

  1. 打开vim,并保存退出
  2. vim b.py内容,并解决汉字兼容性的问题

for循环:

实现打印5个h

以及次数

x y

turtle模块画出正方形。

类的学习:

2.tensorflow

  张量tensor :即为多维数组,一个方括号就代表一阶张量。

搭建Tensor之后,只表示运算过程不计算结果,也就是只是搭建计算图

计算图(graph):搭建神经网络的计算过程,并且只搭建并不运算

会话(Session):执行计算图中的节点运算用with语句

with tf.Session() as sess:

    print sess.run(y)

2.1 前向传播

参数:网络线上的权重,用变量表示,随机给初值。

w=tf.Variable(tf.random_normal([2,3])#产生两行三列的矩阵#,stddev=2#标准差为2#,mean=0#均值为0#,seed=1#随机种子#))

 正态分布也可变为: tf.truncated_normal()#去掉过大偏离点的正态分布 ,truncated为截断的意思。也可换为tf.random_uniform()为平均分布。

另外:

tf.zeros([3,2],int32),生成3行2列全零数组

tf.ones([3,2],int32),生成3行2列全一数组

tf.fill([3,2],6) 生成定制数组 3行2列全6数组

tf.constant([3,2,1])生成【3,2,1】一行三列数组

神经网络实现过程

  1. 准备数据集,提取特征,作为输入喂给神经网络
  2. 搭建NN结构,从输入到输出(先搭建计算图,再用会话执行)  #前向传播算法,计算输出
  3. 大量特征数据喂给NN,迭代优化NN参数    #反向传播算法,优化模型参数
  4. 使用训练好的模型预测与分裂

前向传播相关函数计算:

  1. 变量初始化,计算图节点运算运用会话(session)实现:
    with tf.Session() as sess:
            sess run()
  2.  变量初始化:在sess.run函数中用tf.global_variables_initializer():
    init_op=tf.global_variables_initializer()   
    sess.run(init_op)
  3. 计算图节点运算:在sess.run函数中写入待计算的节点:
    sess.run(y)
  4. 用tf.placeholder占位,在sess.run函数中用feed_dict喂数据
    喂一组数据:
    x=tf.placeholder(tf.float32,shape=(1,2))
    sess.run(y,feed_dict={x:[[0.5,0.6]]})
    喂多组数据:
    x=tf.placeholder(tf.float32,shape=(None,2))
    sess.run(y,feed_dict={x:[[0.1,0.2],[0.2,0.3],[0.3,0.4],[0.5,0.6]]})

利用x=tf.placeholder(tf.float32,shape=(1,2))占位,输入可以输入多组数据

在用sess计算的时候,通过feed dict 函数进行微数据,进行初始化网络输入,进而得到输出

利用此种方法,可以进行多组数据的输入。

2.2反向传播

反向传播:训练模型参数,在所有参数上用梯度下降,使NN模型在训练数据上的损失函数最小

损失函数:预测值与已知答案的差距

反向传播训练方法:以减小loss值为优化目标

trian_step=tf.train.GradientDescentOptimizer(learning_rate).minimize(loss)

train_step=tf.train.MomentumOptimizer(learning_rate,momentum).minimize(loss)

train_step=tf.train.AdamOptimizer(learning_rate).minimize(loss)

 学习率设为:0.001

损失函数:

自定义损失函数:

 

概率分布的距离是??

交叉熵为一个评判标准,评判概率分布距离标准答案的距离,越近就代表越准

可以用下面的两个函数代替上面的ce

学习率:

学习率的设置:

设置动态学习率:

代码段只是:

global_step=tf.Variable(0,trainable=False)

learning_rate=tf.train.expoential_decal( 

 

滑动平均(影子)值:

由公式递归可求得影子值,

表示滑动平均值的函数中有个固定的函数值为:ema_op=ema.apply(tf.trainable_variables())可以对所有待优化的参数求滑动平均

总的来说,滑动平均值也就是影子值是为了平滑数据集,减少噪音和异常,类似于momentum,都有惯性,如果参数太大,整个曲线就会有滞后性,和真正的数据产生偏差。具体内容参照:https://blog.csdn.net/huqinweI987/article/details/88241776

正则化缓解过拟合

正则化就是在损失函数中引入模型复杂度指标,给W加权,同样可以弱化噪声,具体算法如下:

matplotlib 模块的使用:

全连接网络基础:

重用函数列表:

模型的保存和加载:

网络搭建过程:

卷积神经网络基础

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Tensorflow是一个开源的机器学习框架,它是用C++编写的,并提供了Python的API供开发者使用。与大多数Python库不同,Tensorflow不仅仅是一个Python库的扩展,它是一个独立的框架,用于构建和训练机器学习模型。\[1\] 在使用Tensorflow时,我们需要使用Python来编写代码,并使用Tensorflow的API来创建和操作模型。Python是一种通用的编程语言,它具有简洁易读的语法和丰富的库支持,使得使用Tensorflow变得更加方便和灵活。 在Python中,我们可以使用条件语句来根据不同的条件执行不同的代码块。例如,我们可以使用if-else语句来判断一个变量的值,并根据条件的结果执行相应的代码。\[2\] 此外,我们还可以在Python中定义类和函数。类是一种面向对象的编程概念,它允许我们将相关的变量和函数组织在一起,并通过创建类的实例来使用它们。函数是一段可重复使用的代码块,它接受输入参数并返回结果。\[3\] 总结来说,Tensorflow是一个用于机器学习的框架,它使用Python作为主要的编程语言,并提供了丰富的API来创建和操作模型。在使用Tensorflow时,我们可以使用Python的条件语句、类和函数来编写灵活和可扩展的代码。 #### 引用[.reference_title] - *1* [tensorflowPython关系](https://blog.csdn.net/u012911202/article/details/84583527)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [PythonTensorflow 简介](https://blog.csdn.net/Hansry/article/details/79904981)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值