tensorflow 常用的資料處理函式

2021-10-14 07:15:23 字數 3898 閱讀 7535

reduce_sum(input_tensor, axis=none, keepdims=false, name=none):求和函式

x = tf.constant([[

1,1,

1],[

1,1,

1]])

tf.reduce_sum(x)

# 6tf.reduce_sum(x,0)

# [2, 2, 2] 每列和

tf.reduce_sum(x,1)

# [3, 3] 每行和

tf.reduce_sum(x,

1, keepdims=

true

)# [[3], [3]] 保持輸入的dim和輸出的dim一致

tf.reduce_sum(x,[0

,1])

# 6

reduce_mean(input_tensor, axis=none, keepdims=false, name=none):返回平均值

axis = none 表示所有元素的平均值 ,axis=0表示取每一列的平均值,axis=1表示取每一行的平均值。

x =[[

1,2,

3],[

1,2,

3]]xx = tf.cast(x, tf.float32)

a = tf.reduce_mean(xx, axis=0)

tf.tensor([1

.2.3

.], shape=(3

,), dtype=float32)

b = tf.reduce_mean(xx, axis=1)

tf.tensor([2

.2.]

, shape=(2

,), dtype=float32)

c = tf.reduce_mean(xx, axis=

1,keepdims=

true

)tf.tensor([[

2.][

2.]]

, shape=(2

,1), dtype=float32)

one_hot(indices, depth,on_value=none,off_value=none,axis=none,dtype=none, name=none):獨熱編碼

on_value和off_value系統預設是1和0.

indices表示輸入的多個數值,通常是矩陣形式

depth表示輸出的尺寸

axis指定第幾階為depth維獨熱向量,預設為-1,即,指定張量的最後一維為獨熱向量

indices中元素預設不超過(depth-1),如果超過,輸出為[0,0,···,0]

若indices是n維向量,輸出矩陣大小為n行depth列

若indices是mxn矩陣,輸出矩陣大小為mxnxdepth

a = tf.one_hot([1

,2,0

],3,axis=-1

)# 最後一維為獨熱編碼,即行

tf.tensor([[

0.1.

0.][

0.0.

1.][

1.0.

0.]]

, shape=(3

,3), dtype=float32)

b = tf.one_hot([1

,2,0

],3,axis=0)

# 0 ,表每一列沒獨熱編碼

tf.tensor([[

0.0.

1.][

1.0.

0.][

0.1.

0.]]

, shape=(3

,3), dtype=float32)

square(x, name=none) :每個元素取平方

argmax(input, axis=none, output_type=dtypes.int64, name=none)

根據axis取值的不同返回每行或者每列最大值的索引

import tensorflow as tf

import numpy as np

test = np.array([[

1,2,

3],[

2,3,

4],[

5,4,

3],[

8,7,

2]])

a = tf.argmax(test,axis=0)

#每一列,取值最大的位置索引

tf.tensor([3

31], shape=(3

,), dtype=int64)

b = tf.argmax(test,axis=1)

#每一行,取值最大的位置索引

tf.tensor([2

200]

, shape=(4

,), dtype=int64)

reshape(tensor, shape, name=none):改變tensor的shape

shape引數通常是乙個列表

某乙個維度不知道填什麼數字,可用-1代替,後續會自動推出。

不會修改內部元素的數量以及相對順序

tf.reshape(x,[-

1,2,

1])== tf.reshape(x,[3

,2,1

])## true

expand_dims(input, axis, name):擴充套件維度,可使用 tf.reshape代替。

>>

> t =[[

1,2,

3],[

4,5,

6]]# shape [2, 3]

>>

> tf.expand_dims(t,0)

,2,3

), dtype=int32, numpy=

array([[

[1,2

,3],

[4,5

,6]]

], dtype=int32)

>

>>

> tf.expand_dims(t,1)

,1,3

), dtype=int32, numpy=

array([[

[1,2

,3]]

,[[4

,5,6

]]], dtype=int32)

>

>>

> tf.expand_dims(t,2)

,3,1

), dtype=int32, numpy=

array([[

[1],

[2],

[3]]

,[[4

],[5

],[6

]]], dtype=int32)

>

>>

> tf.expand_dims(t,-1

)# last dimension index. in this case, same as 2.

,3,1

), dtype=int32, numpy=

array([[

[1],

[2],

[3]]

,[[4

],[5

],[6

]]], dtype=int32)

>

TensorFlow 常用的函式

gettf.shape a 和a.get shape 比較 相同 都可以得到 tensor a 的尺寸不同 tf.shape 中a 資料的型別可以是 tensor,list,array 返回的是乙個 tensor 時。要想知道是多少,必須通過 sess.run tensor.get shape 返回...

tensorflow常用函式

1.variable 主要在於一些可訓練變數 trainable variables 比如模型的權重 weights 或者偏執值 bias 1 宣告時,必須提供初始值 2 在真實訓練時,其值是會改變的,自然事先需要指定初始值 weights tf.variable tf.random normal ...

TensorFlow常用函式

使用tensorflow計算流程 1 prepare train data 2 define model and graph 3 choose optimizer 4 create a session to run import tensorflow as tf 1.tf.reduce mean i...