前言

用tensorflow这样工具的原因是:它允许我们用计算图(Computational Graphs)的方式建立网络.
下面就是对计算图的直观讲解。

例如:

结构

计算图所建立的只是一个网络框架。在编程时,并不会有任何实际值出现在框架中。所有权重和偏移都是框架中的一部分,初始时至少给定初始值才能形成框架。因此需要initialization初始化。

用法及参数说明:

请类比管道构建来理解计算图的用法

构造阶段(construction phase):

组装计算图(管道)

计算图(graph):

要组装的结构。由许多操作组成。

操作(ops):

接受(流入)零个或多个输入(液体),返回(流出)零个或多个输出。

数据类型:

主要分为张量(tensor)、变量(variable)和常量(constant)

张量:

多维array或list(管道中的液体)

创建语句:

tensor_name=tf.placeholder(type, shape, name)

参数说明:
dtype: 数据类型
shape: 张量
name: 名称(可选参数)
例如:

x = tf.placeholder(float, shape=(1024, 1024))
变量:

在同一时刻对图中所有其他操作都保持静态的数据(管道中的阀门)
####创建语句:

name_variable = tf.Variable(value, name)
初始化语句:个别变量
init_op=variable.initializer()

#所有变量

init_op=tf.initialize_all_variables()

注意:init_op的类型是操作(ops),加载之前并不执行

更新语句:
update_op=tf.assign(variable to be updated, new_value)
常量:

无需初始化的变量

创建语句:
name_constant=tf.constant(value)
执行阶段(execution phase):

使用计算图(获取液体)

会话:

执行(launch)构建的计算图。可选择执行设备:单个电脑的CPU、GPU,或电脑分布式甚至手机。

创建语句:常规
sess = tf.Session()

#交互

sess = tf.InteractiveSession()
交互方式可用tensor.eval()获取值,ops.run()执行操作
关闭
sess.close()
执行操作:使用创建的会话执行操作

执行语句:

sess.run(op)
送值(feed):输入操作的输入值(输入液体)

语句:

sess.run([output], feed_dict={input1:value1, input2:value1})

取值(fetch):获取操作的输出值(得到液体)
语句:

单值获取
sess.run(one op)
多值获取
sess.run([a list of ops])
GitHub 加速计划 / te / tensorflow
184.55 K
74.12 K
下载
一个面向所有人的开源机器学习框架
最近提交(Master分支:2 个月前 )
a49e66f2 PiperOrigin-RevId: 663726708 2 个月前
91dac11a This test overrides disabled_backends, dropping the default value in the process. PiperOrigin-RevId: 663711155 2 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐