系统架构
没看懂,大概也不需要懂吧。
设计理念
tensorflow采用符号式编程。符号式计算一般是先定义各种变量,然后建立一个数据流图,在数据流图中规定各个变量之间的计算关系,最后需要对数据流图进行编译,但此时的数据流图还是一个空壳儿,里面没有任何实际数据,只有把需要运算的输入放进去后,才能在整个模型中形成数据流,从而形成输出值。mu:tf --> 数学的代数,计算图 --> 定义代数式、函数等,session --> 赋值进行数值运算。
举个例子:
import tensorflow as tf
t = tf.add(8,9)
print(t)
#输出
Tensor("Add:0", shape=(), dtype=int32)
并没有输出期待的17,而是一个tensor。想要输出结果,就需要运行会话session.
import tensorflow as tf
a = tf.constant([1.0, 2.0])
b = tf.constant([3.0, 4.0])
c = a * b
sess = tf.Session()
print(sess.run(c))
sess.close()
#输出
[ 3. 8.]
编程模型
图的计算过程是:
输入,塑形
ReLu层:参数 W_h1, b_h1,输出前使用ReLu(Rectified Linear Units)激活函数做非线性处理
Logit层:参数 W_sm, b_sm
Sofrmax计算输出累呗概率分布
交叉熵计算源样本和输出结果的相似性
计算梯度W_hl, b_hl, W_sm, b_sm
SGD训练:反向传播从上往下计算每层的参数
一些概念
边:实线标识数据依赖的边,虚线表示控制
节点:算子,代表一种操作
tensorflow支持的张量数据类型
一些tensorflow实现的算子
图:把操作任务描述成有向无环图(便于理解?)
会话:Session
参考《TensorFlow技术解析与实战》
领取专属 10元无门槛券
私享最新 技术干货