TensorFlow学习-1

  • TensorFlow计算模型——计算图
    TensorFlow中的所有计算都会被转化为计算图上的节点,每一个计算都是计算图上的一个节点,而节点之间的边描述了计算之间的依赖关系。

  • 计算图的概念
    Tensor指的就是张量,可以简单的理解为多维数组。
    Flow直观的表达了张量之间通过计算相互转化的过程。

  • 计算图的使用

import tensorflow as tf
a = tf.constant([1.0,2.0], name="a")
b = tf.constant([2.0,3.0], name]"b")
result = a + b

在不同的计算图上定义和使用变量

import tensorflow as tf

g1 = tf.Graph()
with g1.as_default():
    #在计算图g1中定义变量“v”,并设置初始值为0.
    v = tf.get_variable(
    "v", initializer=tf.zeros_initializer(shape=[1]))

g2 = tf.Graph()
with g2.as_default():
    #在计算图g2中定义变量“v”,并设置初始值1.
    v = tf.get_variable(
    "v", initializer=tf.ones_initializer(shape=[1]))

#在计算图g1中读取变量“v”的取值。
with tf.Session(graph=g1) as sess:
    tf.initializer_all_variables().run()
    with tf.variable_scope("", reuse=True):
        #在计算图g1中,变量“v”的取值应该为0,所以下面这行会输出[0.]
        print(sess.run(tf.get_variable("v")))

#在计算图g2中读取变量“v”的取值。
with tf.Session(graph=g2) as sess:
    tf.initializer_all_variables().run()
    with tf.variable_scope("", reuse=True):
        #在计算图g1中,变量“v”的取值应该为1,所以下面这行会输出[1.]
        print(sess.run(tf.get_variable("v")))

TensorFlow提供了管理张量和计算的机制,将加法计算跑在GPU上

g = tf.Graph()
#指定计算运行的设备
with g.device('/gpu:0')
    result = a + b
  • 张量
    张量可以简单的理解为多维数组。
    其中零阶张量表示标量,也就是一个数;
    第一阶张量为向量,也就是一个一维数组;
    第n阶张量可以理解为一个n维数组。

但是张量中并不是直接采用数组的形式。它并没有真正保存数字,它保存的是如何得到这些数字的计算过程

import tensorflow as tf
#tf.constant是一个计算,这个计算的结果为一个张量,保存在变量a中
a = tf.constant([1.0,2.0], name="a")
b = tf.constant([2.0,3.0], name]"b")
result = tf.add(a, b, name="add")
print result
'''
输出:
Tensor("add:0", shape=(2,), dtype=float32)
'''

从上面的代码运行结果可以看出,一个张量中主要保存了三个属性:
名字(name)、维度(shape)和类型(type)
1)名字
“node:sre_output” 其中node为节点的名称,src_node表示当前张量来自节点的第几个输出。
“add:0” 说明了result这个张量是计算节点”add”输出的第一个结果(编号从0开始)
2)维度
“shape=(2,)” 说明了张量result是一个一维数组。这个数组的长度为2
3)类型
每一个张量都会有一个唯一的类型,不同类型的数据进行操作时会出现错误。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值