Tensorflow 基礎型別定義與操作

2021-09-22 16:52:46 字數 4714 閱讀 2288

張量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...