TensorFlow官方文档学习(二)

一、Hello Tensorflow

打开anaconda prompt

activate tensor flow
python
>>>import tensorflow as tf
>>>hello=tf.constant('hello')
>>>s=tf.Session()
>>>print(s.run(hello))
b'hello'

此处hello为utf-8编码?打印出来前缀b,表示数据类型为bytes而非string
hello处若为数字,则是正确的。

二、TensorFlow基本介绍

TensorFlow 是一个编程系统, 使用图来表示计算任务. 图中的节点被称之为 op (operation 的缩写). 一个 op 获得 0 个或多个 Tensor, 执行计算, 产生 0 个或多个 Tensor. 每个 Tensor 是一个类型化的多维数组. 例如, 你可以将一小组图像集表示为一个四维浮点数数组, 这四个维度分别是 [batch, height, width, channels].

一个 TensorFlow 图描述了计算的过程. 为了进行计算, 图必须在 会话 里被启动. 会话 将图的 op 分发到诸如 CPU 或 GPU 之类的 设备 上, 同时提供执行 op 的方法. 这些方法执行后, 将产生的 tensor 返回. 在 Python 语言中, 返回的 tensor 是 numpy ndarray 对象

TensorFlow 程序通常被组织成一个构建阶段和一个执行阶段. 在构建阶段, op 的执行步骤 被描述成一个图. 在执行阶段, 使用会话执行执行图中的 op.

例如, 通常在构建阶段创建一个图来表示和训练神经网络, 然后在执行阶段反复执行图中的训练 op.

三、创建一个图

import tensorflow as tf
mat1=tf.constant([[1,2,3]]) #mat1为一个1x3矩阵
mat2=tf.constant([[4],
                             [5],
                             [6]])  #mat2为一个3x1矩阵
product=tf.matmul(mat1,mat2)

tf.constant()注释
tf.constant([1]),表示一维张量1,即数字1;
tf.constant([1,2,3]),表示元组或说列表,即常量列表[1,2,3]
tf.constant([[1,2,3]]),表示1x3矩阵[1 2 3]
注意体会双层中括号的用法

此时计算图建立完毕,现在这个图包含三个节点(op),两个constant(),一个matmul(),为了真正实现计算,必须在Session中启动这个图

四、启动图

s=tf.Session()
print(s.run(product))
s.close()

Session 对象在使用完后需要关闭以释放资源. 除了显式调用 close 外, 也可以使用 “with” 代码块 来自动完成关闭动作

with tf.Session() as s:
	print(s.run(product))

interactivesession & session:
tf.InteractiveSession():它能让你在运行图的时候,插入一些计算图,这些计算图是由某些操作(operations)构成的。这对于工作在交互式环境中的人们来说非常便利,比如使用IPython。
tf.Session():需要在启动session之前构建整个计算图,然后启动该计算图。
意思就是在我们使用tf.InteractiveSession()来构建会话的时候,我们可以先构建一个session然后再定义操作(operation),如果我们使用tf.Session()来构建会话我们需要在会话构建之前定义好全部的操作(operation)然后再构建会话。

五、Tensor 张量

rank 阶
shape 形状
type 数据类型

六、用一个简单计数器说明Variable

# 创建一个变量, 初始化为标量 
state = tf.Variable(0, name="counter")
one = tf.constant(1)
new_value = tf.add(state, one)
update = tf.assign(state, new_value)
init_op = tf.global_variable_initializer
启动图, 运行 op
with tf.Session() as sess:
    sess.run(init_op)
    print sess.run(state)
    for _ in range(3):
        sess.run(update)
        print sess.run(state)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值