張量tensor包含type,rank和shape三個屬性
tensor型別
張量型別
python型別
dt_float
tf.float32
dt_double
tf.float64
dt_int64
tf.int64
dt_int32
tf.int32
dt_int16
tf.int16
dt_int8
tf.int8
dt_string
tf.string
dt_bool
tf.bool
dt_complex64
tf.complex64
rank指維度,張量形狀可以通過python中的整數列表或元組表示。
1、型別轉換
tf.string_to_number(string_tensor,out_type,name)
tf.to_double(x,name='todouble')
tf.to_float(x,name='tofloat')
tf.to_int32(x,name='toint32')
tf.to_int64(x,name='toint64')
tf.cast(x,dtype,name=none) 將x(或x的values)的型別轉換為指定型別
2、數值操作
tf.ones(shape,type) 按照指定形狀,生成值為1的張量
tf.zeros(shape,type)生成值為0的向量
tf.ones_like(input) 生成和輸入張量形狀相同 的值為1的張量
tf.zeros_like(input)
tf.fill(shape,value) 生成指定形狀值為value的張量
tf.constant(value,shape) 生成常量
tf.random_normal(shape,mean=0.0,stddev=1.0,dtype , seed,name) 生成正態分佈隨機數,均值mean,標準差stddev
tf.truncated_normal(shape,mean,stddev,dtype,seed,name) 截斷正態分佈隨機數,只儲存 [mean-2*]
tf.random_uniform(shape,minval,maxval) 均勻分布隨機數
tf.random_crop(value,size)將輸入值按照size尺寸剪輯
tf.set_random_seed(seed) 設定隨機數種子
tf.linespace(start,stop,num) 產生num個等差數列,在start-stop範圍中
tf.range(start,limit,delta=1) 在start 和limit中產生步長為delta的等茶水列,不包括limit
3、形狀操作
tf.shape(input) 返回張量的shape
tf.size(input) 返回張量中元素的個數
tf.rank(input) 返回張量的階數
tf.reshape(input,shape) 將張量轉換為目標形狀
tf.expand_dims(input,dim) 插入維度1到張量中
tf.squeeze(input,dim) 去除指定維度,去除的維度必須是1
4、資料操作
tf.slice(input,begin,size) 對輸入資料切片
tf.split(value,num_or_size_splits) 沿某一維度將張量分離
tf.concat(dim,values)沿某一維度連線張量 ,指定維度的陣列會合併
tf.stack(input,axis=0) 在指定維度拼接張量,指定維度會變成陣列,也就是額外套一層;t1 =[[1,2,3],[4,5,6]] ;t2 =[[1,2,3],[4,5,6]],tf.stack([t1,t2],axis=1) =[[[1,2,3],[1,2,3]],[[4,5,6],[4,5,6]]]
tf.one_hot(indices,depth,on_value,off_value,axis=none) 生成符合onehot編碼的張量,indices要生成的張量,depth長度的陣列中哪個索引值為onehot的值,onehot值為多少,非onehot值為多少,axis-1時,生成的shape為[indices長度,depth],0時為[depth,indices,,1時為pdepth,batch,indices;
indices = [0,2,-1,4]
depth = 3
on_value =1
off_value = 0
axis = -1
#axis取 -1時,張量時0時的轉置
t= tf.one_hot(indices=indices,depth= depth,on_value=on_value,off_value=off_value)
#tf開頭的**必須放到session的run方法中
session = tf.session()
print(session.run(t))
[[1 0 0]
[0 0 1]
[0 0 0]
[0 0 0]]
5、算術操作
tf.assign(x,y) 令x=y
tf.add(x,y) 求和
tf.subtract(x,y) 減法
tf.multiply(x,y) 乘法
tf.divide(x,y) 除法
tf.mod(x,y)取模
tf.abs(x)求絕對值
tf.negative(x) 取負值
tf.inv(x) 對取反操作
tf.square(x) 計算平方
tf.round(x) 捨入最近的整數
tf.sqr(x) 開根號
tf.pow(x,y) 冪次方計算
tf.exp(x) 計算e的x次方
tf.log(x)計算e的ln
tf.maximum(x,y)最大值
tf.cond(pred,true_fn,false_fn) 滿足條件執行f1,否則執行f2
6、矩陣相關操作
tf.diag(digonal) 返回乙個給定對角值的對角矩陣
tf.diag_part(tens) 與上面相反,獲取矩陣的對角值 的列表
session = tf.session()
tens =tf.diag([1,2,44,12])
td = tf.diag_part(tens)
print(session.run(td))
td = tf.trace(tens) 二維矩陣對角線之和
tf.transpose(a,perm) 對張量a進行轉置,按照指定維度
tf.reverse(tensormduns) 沿著指定的維度對輸入進行反轉
tf.matmul(a,b) 矩陣相乘
tf.matrix_determinant(input) 返回方陣的行列式
tf.matrux_inverse(input,adjoint=none) 求方陣的逆矩陣,adjoint為true時,計算輸入共軛矩陣的逆矩陣
tf.cholesky(input) 對輸入方陣cholesky分解
tf.natrux_solve(matrux,rhs,adjoint)求解矩陣方程,返回矩陣變數
7、複數操作
tf.complex(rea,imag) 將實屬轉換為複數形式
tf.complex_abs(x) 計算複數的絕對值
tf.conj(input) 計算共軛複數
tf.imag(input) 提取虛部
tf.real(input)提取實部
tf.fft(input) 計算一維離散傅利葉變換
8、規約計算
tf.reduce_sum(input,axis,keep_dims,name,reduction_indices) 計算輸入tensor的和,
tf.reduce_prod(input,axis,keep_dims =false,name=none,reduction) 計算輸入tensor的乘積
tf.reduce_min
tf.reduce_max
tf.reduce_mean
tf.reduce_all 對tensor的各個元素求邏輯「與」
tf.reduce_any 求邏輯或
9、序列比較和索引提取
tf.argmin(input) 返回input最小值的索引、
tf.argmax(input)返回input最大值的索引
tf.setdiff1d(x,y) 返回x,y中不同值的索引
tf.where(condition,x,y) 如果x,y都不為null,則返回condition為true的x的值,false時y的值,都為null時,返回cond中true的座標列表
tf.unique(x) 返回去重後的元組
tf.invert_permutation(x) 把x中元素的值當作索引返回新的張量
tf.random_shuffle(input ) 沿著input第一維進行隨機重新排列
TensorFlow基礎型別彙總
4.2 tensorflow基礎型別定義及操作函式介紹 下面介紹tensorflow的基礎型別 基礎函式。這部分學完,會使你對tensorflow的基礎語法有個系統的了解,為後面學習寫 或讀 掃清障礙。4.2.1 張量及操作 張量可以說是tensorflow的標誌,因為整個框架的名稱tensorfl...
Tensorflow 基礎概念
g v,e v operation 圖的節點 e tensor 圖的邊 g graph 圖 tensorflow tensor 多維陣列 flow graph 圖 op session回話上下文管理 variable tensor 多維資料變數 placeholder 外部傳入的引數變數 seesi...
tensorflow語法基礎
變數型別 variable 變數 constant 常量 指定引數 name 變數在tensorflow中的名字 dtype 變數的資料型別 可以是tf.float32,tf.int32之類的 e.g.import tensorflow as tf a tf.variable 0,dtype int...