Tensorflow是一种通过计算图构建神经网络、深度学习等模型,并用于实现相关任务的的工具。它主要由python语言实现,内部计算用C++实现,所以它的特点为:简单、高效、稳定。通过使用tensorflow不仅可以实现我们常见的深度学习任务,而且让我们从复杂的实现细节中解放出来,更加关注我们的任务本身,从而节省了宝贵的时间。本文主要是一些tensorflow的学习笔记,供我或者大家参考,具体细节还是看tensorflow官方文档更好。
张量和操作为计算图的基本组成元素,张量相当于边,操作相当于点。
名词 | 解释 |
---|---|
张量 | 张量是对向量或者高维矩阵的泛化,用来表示图运算过程中的数据。tf.Tensor是它的API。 |
操作 | 数据与数据之间进行的计算被称为操作。小到常量、变量的初始化,大到矩阵之间的加减乘除都可以称为操作。 |
常量 | 用tf.constant()进行定义。常量为不需要变化的张量,输入数据为numpy的array等数据类型,请填写时注意一下。 |
变量 | 用tf.Variable()进行定义。变量主要用于需要被初始化的参数,如深度学习中的权重、偏置值,需要在训练开始前先进行初始化。 |
占位符 | 用tf.placeholder()进行定义。占位符主要用于训练时需要动态获取的数据,如深度学习中的输入数据。每次训练迭代周期内,用feed_dict={}体现。(feed_dict作为sess.run()的一个参数)(请区分好变量和占位符的创建场景) |
以上概念所对应的方法最终返回的结果为张量。
# 导入模块
import tensorflow as tf
import numpy as np
# 下面为tensorflow范式(本文以神经网络为例)
# 1. 加载数据,例如:
x = numpy.array([[0.2, 0.7], [0.14, -0.6]])
# 2. 构建计算图
x = tf.constant(x)
w1 = tf.Variable(tf.random_normal([2, 3], stddev=1, seed=1)) # 张量
w2 = tf.Variable(tf.random_normal([3, 1], stddev=1, seed=1)) # 张量
h = tf.matmul(x, w1) # 操作
y = tf.matmul(h, w2) # 操作
# 运行计算图
with tf.Session() as sess:
# 初始化变量
init_op = tf.global_variables_initializer()
# 运行操作
sess.run(init_op)
print(sess.run(y))
先导入必要的模块,然后定义数据和图的骨架,最后在tf.Session中运行结果。
更新于2019年六月十号
性别男,技术爱好者,目前职位是算法工程师。
2019.06.04