主要mark哪些服务于deep learning的tensor flow基础
什么是tensor?
tensor:张量
张量:其不同于向量 ,为空间量
(ex:矩阵)
基本操作:
import tensorflow as tf
import numpy as np
三个重要函数:
Variable变量
MENTION IT!variable是一个class ,tensor也是一个class
tf.Variable.__init__(
initial_value = None,
trainable = True,
collections = None,
validate_shape = True,
caching_device = None,
name = None,
variable_def = None,
dtype = None
)
返回值:variable(class<span style="font-family: Arial, Helvetica, sans-serif;">)
Constant 常量
tf.constant(value,dtype = None,shape =None,name='const')
Plcaeholder
tf.placeholder(dtype,shape = None,name=None)
ex:a = tf.placeholder(dtype = 'float64')
返回值:尚未存在的tensor
4个重要类型:
Variable
刚才讲过,不再说
Tensor
举例:
situation1:
def basic_operation():
v1 = tf.Variable(10) #这是个tensor,后面要initialize
v2 = tf.Variable(5)
add = v1+v2 #这里只是定义了一个计算图谱 然而 并没有运行它
print(add) #打印的就是图谱咯
#session是一个runtime
sess = tf.Session() #因此我们需要session 用来运行图谱的实例
tf.initialize_all_varaibles().run(session=sess) #这里initialize 使得Variable -> tensor
print('加法(v1,v2)=' ,add.eval(session=sess)) #评估最后的值
situation2:
c1 = tf.constant(10)
c2 = tf.constant(5)
sess = tf.Session()
print('加法(c1,c2)=',add.eval(session=sess)) #constant就不用初始化 而 Variable是需要初始化的 因为Variable不是一个tensor,constant是,tensor才可以运算啊,对不对
Graph 计算图谱
用于打包一个计算图谱,无封装,无测试,无调用
graph = tf.Graph()
with graph.as_default():
value1 = tf.constant([1,2])
value2 = tf.Variable([3,4])
mul = value1 * value2 # *为内积
with tf.Session(graph = graph) as mySess:
tf.initialize_all_variable(),run()
print('乘法(v3,v4)=' ,mySess.run(mul))
<span style="color:#ff0000;">MENTION IT!</span>
#tensor.eval(session=mySess)
#mySess.run(tensor) 两种写法是一毛一样的!!
Session
上面讲过,不说