tensorflow入门基础
来源:互联网 发布:java dos 命令 编辑:程序博客网 时间:2024/05/17 05:54
TensorFlow用张量这种数据结构来表示所有的数据。用一阶张量来表示向量,如:v = [1.2, 2.3, 3.5] ,如二阶张量表示矩阵,如:m = [[1, 2, 3], [4, 5, 6], [7, 8, 9]],可以看成是方括号嵌套的层数。
1、编辑器
编写tensorflow代码,实际上就是编写py文件,最好找一个好用的编辑器,如果你用vim或gedit比较顺手,那也可以的啦。我们既然已经安装了anaconda,那么它里面自带一个还算不错的编辑器,名叫spyder,用起来和matlab差不多,还可以在右上角查看变量的值。因此我一直使用这个编辑器。它的启动方式也很简单,直接在终端输入spyder就行了。
2、常量
我们一般引入tensorflow都用语句
import tensorflow as tf
因此,以后文章中我就直接用tf来表示tensorflow了。
在tf中,常量的定义用语句:
a=tf.constant(10)
这就定义了一个值为10的常量a
3、变量
变量用Variable来定义, 并且必须初始化,如:
x=tf.Variable(tf.ones([3,3]))y=tf.Variable(tf.zeros([3,3]))
分别定义了一个3x3的全1矩阵x,和一个3x3的全0矩阵y,0和1的值就是初始化。
变量定义完后,还必须显式的执行一下初始化操作,即需要在后面加上一句:
init=tf.initialize_all_variables()
这句可不要忘了,否则会出错。
4、占位符
变量在定义时要初始化,但是如果有些变量刚开始我们并不知道它们的值,无法初始化,那怎么办呢?
那就用占位符来占个位置,如:
x = tf.placeholder(tf.float32, [None, 784])
指定这个变量的类型和shape,以后再用feed的方式来输入值。
5、图(graph)
如果把下面的python语句改在tf语句,该怎么写呢:
x=3y=2z=x+yprint(z)
定义两个变量,并将两个数相加,输出结果。如果在tf中直接像上面这样写,那就错了。x,y,z分别是三个tensor对象,对象间的运算称之为操作(op), tf不会去一条条地执行各个操作,而是把所有的操作都放入到一个图(graph)中,图中的每一个结点就是一个操作。然后行将整个graph 的计算过程交给一个 TensorFlow 的Session
, 此 Session
可以运行整个计算过程,比起操作(operations)一条一条的执行效率高的多。
执行代码如下:
import tensorflow as tfx = tf.Variable(3)y = tf.Variable(5)z=x+yinit = tf.initialize_all_variables()with tf.Session() as sess: sess.run(init) print(sess.run(z))
其中sess.run()即是执行,注意要先执行变量初始化操作,再执行运算操作。
Session需要先创建,使用完后还需要释放。因此我们使用with...as..语句,让系统自动释放。
例子1:hello world
import tensorflow as tfword=tf.constant('hello,world!')with tf.Session() as sess: print(sess.run(word))
例子2:加法和乘法
import tensorflow as tf a = tf.placeholder(tf.int16)b = tf.placeholder(tf.int16)add = tf.add(a, b)mul = tf.mul(a, b)with tf.Session() as sess: print('a+b=',sess.run(add, feed_dict={a: 2, b: 3})) print('a*b=',sess.run(mul, feed_dict={a: 2, b: 3}))
此处使用feed_dict以字典的方式对多个变量输入值。
例子3: 矩阵乘法
import tensorflow as tf a=tf.Variable(tf.ones([3,2]))b=tf.Variable(tf.ones([2,3]))product=tf.matmul(5*a,4*b)init=tf.initialize_all_variables()with tf.Session() as sess: sess.run(init) print(sess.run(product))
其中
product=tf.matmul(5*a,4*b)
也可以改成
product=tf.matmul(tf.mul(5.0,a),tf.mul(4.0,b))
定义变量时,没有指定数据类型,则默认为float32,因此是5.0而不是5
- tensorflow入门基础
- Tensorflow入门-基础20170727
- TensorFlow基础(一)--入门
- tensorflow学习笔记二:入门基础
- tensorflow学习记录(二):入门基础
- tensorflow学习笔记二:入门基础
- 零基础入门Tensorflow-001-安装
- TensorFlow入门(基础语法,小程序)
- 【TensorFlow】TensorFlow快速入门
- TensorFlow入门
- TensorFlow 入门
- TensorFlow入门
- TensorFlow入门
- TensorFlow入门
- Tensorflow 入门
- TensorFlow 入门
- tensorflow入门
- TensorFlow 入门
- 使用VS2017静态编译sqlite3,生成静态的sqlite3.lib
- ubuntu下使用bt dongle
- elasticsearch 之mapping
- javascript常用的一些开发模式(常用)
- 使用百度编辑器的时候的一个小bug
- tensorflow入门基础
- mysql 语句
- 论文提要“Fast Feature Pyramids for Object Detection”
- 在mac和windows下python cat和type命令用法
- 反射
- 通过IP地址查找位置(2)
- servlet3.0使用注解配置后访问无效
- 1096. Consecutive Factors (20)[数学逻辑]
- spring aop 不能加在controller上,能加在service上