tensorflow中的shape函式理解

2021-09-29 19:51:19 字數 1269 閱讀 5648

在tensorflow中經常用到shape函式

例如

import tensorflow as tf

a = tf.constant([[1.,2.,3.],[4.,5.,6.],[7.,8.,9.]],shape = [3,3])

b = tf.global_variables_initializer()

with tf.session() as sess:

sess.run(b)

print('data=[[1.,2.,3.],[4.,5.,6.],[7.,8.,9.]] , shape = [3,3] ')

print('display:\n',sess.run(a))

print('\n')

其中 shape = [3,3]表示乙個3*3的二維資料,其組織形式為

[[1. 2. 3.]

[4. 5. 6.]

[7. 8. 9.]]

也可以表示為[[1. 2. 3.] [4. 5. 6.] [7. 8. 9.]],實質是一樣的。

再複雜一點的,例如

a = tf.constant([[1.,2.,3.],[4.,5.,6.],[7.,8.,9.]],shape = [3,3,1])
其組織形式為

[[[1.] [2.] [3.]] [[4.] [5.] [6.]] [[7.] [8.] [9.]]]

可以看到每個資料自成一組,這就是 shape = [3,3,1]中最右邊的1帶來的效果。

對於通用的形式 shape = [s1,s2,s3,s4,s5],如何理解呢? 

規則:從右到左分組

舉例:

a = tf.constant([[1.,2.,3.],[4.,5.,6.],[7.,8.,9.]],shape = [1,3,3,2])
其組織形式為

[  [ [[1. 2.] [3. 4.] [5. 6.]]  [[7. 8.] [9. 9.] [9. 9.]]  [[9. 9.] [9. 9.] [9. 9.]] ]  ]

根據shape=[1,3,3,2],從右到左,首先按照每2個數編一組形成group1,再每3個group1組編一組成group2,再每3個group2便一組成group3,最後整個group3又編乙個大組group4。所以最外層的方括號有4個。

當資料不夠,後續的分組中都以尾資料9.填充,強制形成[1,3,3,2]格式的陣列,1*3*3*2共18個資料。

reshape函式也可以參照shape函式進行理解。

Openssl中的sha1和sha256教程

sha1庫是一種雜湊演算法,用以生成結果為160bit的資料摘要,即20個位元組。sha256結果為256bit,即32個位元組。摘要的意思是,抽象為任意大小的資料為固定長度資料,結果是由於全部原始資料經過計算得出,逆推則無法計算除準確結果。摘要的特性 由於以上特性,sha雜湊被廣泛用於軟體工程中。...

Tensorflow中的Lazy load問題

用tensorflow訓練或者inference模型的時候,有時候會遇到執行越來越慢,最終記憶體被佔滿,導致電腦宕機的問題,我們稱之為記憶體溢位。出現這種問題很可能是因為在乙個session中,graph迴圈建立重複的節點所導致的lazy load問題。舉個例子,用tensorflow迴圈做多次加法...

tensorflow中的函式

執行當前tensor的run 操作 a tf.variable tf.ones 10 with tf.session as sess tf.global variables initializer run b sess.run a 1 b a eval 2 print b 中的 1 2 行的功能一樣...