tensorflow

核心概念

Tensorflow中的计算可以表示为一个有向图或者称为计算图。其中每一个运算操作将作为一个节点,计算图描述了数据的计算流程,也负责维护和更新状态(更新w参数)用户通过编程语言设计这个数据计算的有向图,计算图的每一个节点可以有任意多个输入和任意多个输出,每一个节点描述了一种运算操作,节点可以算是运算操作的实例化,计算图中的边里面流动的数据称为张量,

代码流程

Import tensorflow as tf

b = tf.Variable(tf.zeros([100]))  取100个0

W = tf.Variable(tf.random_uniform([784, 100], -1, 1))   取-1到1之间均匀分布的随机数784x100

x = tf.placeholder(name=“x”) :placeholder占位符,等新的数据填进去

Relu = tf.nn.relu(tf.matmul(W, x) + b ) W和x做点乘,再加上b,然后在做relu

Cost = […]

Sess = tf.Session()

for step in range(0, 10):
    input = ..construct 100-D input array…
    result = sess.run(cost, feed_dict={x:input})
    print(step, result)

示例

import tensorflow as tf

# tf.Variable生成的变量,每次迭代都会变化,
# 这个变量也就是我们要去计算的结果,所以说你要计算什么,你是不是就把什么定义为Variable

'''
TensorFlow程序可以通过tf.device函数来制定运行每一个操作的设备

这个设备可以是本地的CPU或GPU,也可以是某一台远程的服务器
TensorFlow会给每一个可用的设备一个名称,tf.device函数可以通过设备的名称,来指定运算的设备,比如CPU在TensorFlow中的名称为/cpu:0

在默认情况下,即使机器有多个CPU,TensorFlow也不会区分它们,所有的CPU都是用/cpu:0作为名称

-而一台机器上不同GPU的名称是不同的,第n个GPU在TensorFlow中的名称为/gpu:n
-比如第一个GPU的名称为/gpu:0,第二个GPU名称为/gpu:1,以此类推
-TensorFlow提供了一个快捷的方式,来查看运行每一个运算的设备
-在生成会话时,可以通过设置log_device_placement参数来打印运行每一个运算的设备

-除了可以看到最后的计算结果之外,还可以看到类似“add: /job:localhost/replica:0/task:0/cpu:0“这样的输出
-这些输出显示了执行每一个运算的设备。比如加法操作add是通过CPU来运行的,因为它的设备名称中包含了/cpu:0
-在配置好GPU环境的TensorFlow中,如果操作没有明确的指定运行设备,那么TensorFlow会优先选择GPU
'''

with tf.device('/cpu:0'):
    x = tf.Variable(3, name='x')
y = tf.Variable(4, name='y')
f = x*x*y + y + 2

#创建一个计算图的一个上下文环境
#配置里面是把具体运行过程在哪里执行给打印出来
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
#碰到session.run()就会立刻去调用计算
sess.run(x.initializer)
sess.run(y.initializer)
result = sess.run(f)
print(result)
print(result)
sess.close()

#TensorFlow程序会典型的分为两部分,第一部分是创建计算图,叫做构建阶段
#这一阶段通常建立表示机器学习模型的计算图,和需要去训练模型的计算图
#第二部分是执行阶段,执行阶段通常运行Loop循环重复训练步骤,每一步训练小批量数据,
#逐渐的改进模型参数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值