numpy計算函數和tf計算函數

numpy計算函數

1、np.random.choice()

參數意思分別 是從a 中以概率P,隨機選擇3個, p沒有指定的時候相當於是一致的分佈
a1 = np.random.choice(a=5, size=3, replace=False, p=None)
非一致的分佈,會以多少的概率提出來
a2 = np.random.choice(a=5, size=3, replace=False, p=[0.2, 0.1, 0.3, 0.4, 0.0])

2、np.roll()

np.roll(a, shift, axis=None)
沿着給定軸滾動數組元素。超出最後位置的元素將會滾動到第一個位置。
#將a沿着axis的方向滾動shfit長度

3、np.reshape()

在不改變矩陣的數值前提下修改矩陣的形狀。
新數組的shape屬性應該要與原來數組的一致,即新數組元素數量與原數組元素數量要相等。一個參數爲-1時,那麼reshape函數會根據另一個參數的維度計算出數組的另外一個shape屬性值。
例子:

# z: 
array([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
[13, 14, 15, 16]])
# z.reshape(-1,2): 
array([[1, 2],
		[3, 4],
		[5, 6],
		[7, 8],
		[9, 10],
		[11, 12],
		[13, 14],
		[16,16]])

tf計算函數

1、tf.placeholder(dtype, shape=None, name=None)

placeholder,佔位符,在tensorflow中類似於函數參數,運行時必須傳入值。
dtype:數據類型。常用的是tf.float32,tf.float64等數值類型。
shape:數據形狀。默認是None,就是一維值,也可以是多維,比如[2,3], [None, 3]表示列是3,行不定。
name:名稱。

2、tf.unstack(value, num=None, axis=0, name=‘unstack’ )

value:代表需要分解的矩陣變量(其實就是一個多維數組,一般爲二維);
axis:指明對矩陣的哪個維度進行分解。axis=0按行分解,axis=1按列分解
例子:

c = tf.constant([[1,2,3], [4,5,6]])
d = tf.unstack(c, axis=0)
e = tf.unstack(c, axis=1)
d: array[[1,2,3], [4,5,6]]
e: array[[1,4], [2,5], [3,6]]

3、tf.random_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)

用於從“服從指定正態分佈的序列”中隨機取出指定個數的值。
shape: 輸出張量的形狀,必選
mean: 正態分佈的均值,默認爲0
stddev: 正態分佈的標準差,默認爲1.0
dtype: 輸出的類型,默認爲tf.float32
seed: 隨機數種子,是一個整數,當設置之後,每次生成的隨機數都一樣
name: 操作的名稱
例子:

import tensorflow as tf 
w1 = tf.Variable(tf.random_normal([2, 3], stddev=1, seed=1)) 
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    print(sess.run(w1))
# 結果:
[[-0.81131822  1.48459876  0.06532937]
 [-2.4427042   0.0992484   0.59122431]]

4、tf.reduce_sum(input_tensor, axis=None, keepdims=None,name=None,reduction_indices=None, keep_dims=None)

input_tensor:待求和的tensor;
axis:指定的維,如果不指定,則計算所有元素的總和;
keepdims:是否保持原有張量的維度,設置爲True,結果保持輸入tensor的形狀,設置爲False,結果會降低維度,如果不傳入這個參數,則系統默認爲False;
name:操作的名稱;
reduction_indices:在以前版本中用來指定軸,已棄用;
keep_dims:在以前版本中用來設置是否保持原張量的維度,已棄用;
例子:

tensor:
[[[ 1   2   3   4]
  [ 5   6   7   8]
  [ 9   10 11 12]],
 [[ 13  14 15 16]
  [ 17  18 19 20]
  [ 21  22 23 24]]]

tf.reduce_sum(tensor, axis=0) axis=0 說明是按第一個維度進行求和。那麼求和結果shape是3*4

[[1+13   2+14   3+15 4+16]
 [5+17   6+18   7+19 8+20]
 [9+21 10+22 11+23 12+24]]

依次類推,如果axis=1,那麼求和結果shape是2*4,即:

[[ 1 + 5 + 9   2 + 6+10   3 + 7+11   4 + 8+12]
 [13+17+21     14+18+22   15+19+23   16+20+24]]

如果axis=2,那麼求和結果shape是2*3,即:

[[1+2+3+4          5+6+7+8          9+10+11+12]
 [13+14+15+16      17+18+19+20      1+22+23+24]]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章