深度学习笔记(十五)深度学习框架和TensorFlow

在这里插入图片描述

一、为什么使用深度学习框架

我们逐渐熟悉使用Python和Numpy等库编写深度学习代码,但事实上从零开始实现整个过程并不现实,幸好有很多很优秀的深度学习框架,帮助你实现这些模型。学习具体实现原理对调用框架是非常有帮助的,类比你计算矩阵乘法,你学会了使用线性代数库进行运算,同时你也明白矩阵相乘到底是怎样一个计算过程,使用框架使得你的工作更加实用和高效。

二、主流深度学习框架

在这里插入图片描述
选择框架时需要考虑的三个原则:

  • 易于编程
    不论是在开发部署还是调试上,用简洁的语言编程是非常有必要的
  • 运行速度
    大型网络会花费大量时间训练,框架的运行速度一定需要考虑
  • 真正开源
    在选择框架时,要看准公司的发展状况,有些公司现在框架开源,但是未来可能将框架的功能面向公司内部,那时候你会发现自己吃了大亏。

三、TensorFlow

举个例子,我们有损失函数:
J ( w ) = w 2 − 10 w + 25. J(w)=w^2-10w+25. J(w)=w210w+25.
要计算优化得到其最小值及 w w w的取值。
在这里插入图片描述
代码如下:

import tensorflow as tf
import numpy as np

coeffiencients = np.array([[1.], [-10.], [25.]])

w = tf.Variable(0,dtype=tf.float32) # 定义w初值为0
x = tf.placeholder(tf.float32, [3,1]) # placeholder占位符,表示可以填充内容
# cost = tf.add(tf.add(w**2,tf.multiply(-10.,w)),25) # 用add和muliply函数方便tf求导
# 运算符号重载:cost = w**2 - 10*w + 25
cost = x[0][0]*w**2+x[1][0]*w+x[2][0]
lr = 0.01 # 学习率
train = tf.train.GradientDescentOptimizer(lr).minimize(cost)

init = tf.global_variables_initializer() # 全局初始化
session = tf.Session() # 启动一个session
session.run(init) # 执行初始化
print(session.run(w)) # w尚未调整

# 一次梯度下降迭代过程
session.run(train, feed_dict={x:coeffiencients}) # 通过feed_dict将数组coefficients赋值给x
print(session.run(w))

for i in range(1000):
    session.run(train, feed_dict={x:coeffiencients}) # 通过feed_dict将数组coefficients赋值给x
print(session.run(w))
  • 通常会见到这种with结构的语法,左右表达式的效果基本一致,with语法防止内循环出现错误
    在这里插入图片描述
  • TensorFlow已经内置了必要的反向传播函数,我们提供了前向传播计算和损失函数后可以自动求导得到反向计算结果。
  • 我们学习的计算图和TensorFlow说明中的图不太一样,计算图用值表示节点,而TensorFlow中用符号表示节点。
    计算图
    在这里插入图片描述
    Tensorflow结构图
    在这里插入图片描述
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.zwX

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值