码一波学习链接:
http://c.biancheng.net/view/1951.html
http://www.tensorfly.cn/tfdoc/tutorials/mnist_tf.html
https://www.cnblogs.com/baobaotql/p/11251375.html
Tensorflow是谷歌公司推出的开源深度学习框架,利用它我们可以快速搭建深度学习模型。Tensorflow跟很多机器学习库类似,采用了“流图”方式,这样做的好处可以减小计算开销。一般情况下,python的数值计算库会将矩阵乘法之类的复杂计算传送到外部外部语言计算(更高效的语言c,汇编等),但是每次计算转换回来的操作依然是很大的开销。所以“流图”方式采用,先用图和流来描述模型,再将整个模型一起送出去计算,计算完再送回来,这样减少了转换次数以减少开销。
在Tensorflow中操作的数据对象是tensor(张量,包括常量和变量),由对象和操作OP就构成了图Graph, 将各个图的输入输出连接就形成的流图,至此模型的表示便完成了。在这个框架下表示和执行是分开的,因此,session会话便出场了,将表示放在session中就可以运行了。在运行中很可能要使用到变量,只有数据的更新,才能得到“活水流”,那么怎么在session中赋予新的数据或者获取新数据,使用 tf.placeholder() 创建占位符的op中可以使用
feed 赋值如:sess.run([output], feed_dict={input1:[7.], input2:[2.]}),可以使用fetch来获取操作的返回值(可以是多个)如: result = sess.run([mul,intermed])。result是多个值。
在同构的意义下,第零阶张量 (r= 0) 为标量(Scalar),第一阶张量 (r = 1)为向量 (Vector),第二阶张量 (r= 2) 则成为矩阵
(Matrix)。