7 合併與分割

2022-09-08 03:18:13 字數 2279 閱讀 2859

1、concat,拼接 

例:統計班級的學生的分數

a = [class1-4,student,scores],4個班級,35個學生,8門課的分數

b = [class5-6,student,scores],2個班級,35個學生,8門課的分數

cancat要求除了指定合併的維度之外,其餘的維度要大小要相同

1 a = tf.ones([4,35,8])

2 b = tf.ones([2,35,8])

3 c = tf.concat([a,b],axis = 0) #

引數要用括起來,而且要指定維度,typeerror: concat() missing 1 required positional argument: 'axis'

4print(c.shape) #

(6, 35, 8)

56 a = tf.ones([4,35,8])

7 b = tf.ones([4,3,8]) #

除了指定的維度,其餘的維度要相同

8 c = tf.concat([a,b],axis = 1)

9print(c.shape) #

(4, 38, 8)

2、stack,建立乙個新維度,需要合併建立乙個新維度的所有張量的維度一樣

1 #建立新的維度需要所有維度的大小是一樣的

2 a = tf.ones([4,35,8])

3 b = tf.ones([4,35,8])

45 c1 = tf.concat([a,b],axis=-1)

6print(c1.shape) #

(4, 35, 16)

78 c2 = tf.stack([a,b],axis=0) #

在第乙個維度之前建立新的維度

9print(c2.shape) #

(2, 4, 35, 8)

1011 c3 = tf.stack([a,b],axis=3) #

在最後乙個維度之後建立新的維度

12print(c3.shape) #

(4, 35, 8, 2)

3、unstack 對乙個張量進行切割,按指定的維度分成等數量的個數,如[4,35,8]指定在第一維度上進行切割,那麼會切割成4個[35,8]的張量

1 #3、unstack分割資料

2 a = tf.ones([4,35,8])

3 b = tf.ones([4,35,8])

45 c = tf.stack([a,b],axis=0)

6print(c.shape) #(2, 4, 35, 8)

78 aa,bb = tf.unstack(c,axis=0)

9print(aa.shape,bb.shape)#分割成兩個一樣的(4, 35, 8)

4、split ,在對乙個張量進行切割之後,可以指定要分割之後的數量

1

#4、split

2 a = tf.ones([4,35,8])

3 b = tf.ones([4,35,8])

45 c = tf.stack([a,b],axis=0)

6print

(c.shape)

78 res = tf.unstack(c,axis=3) #

生成8個[4,35]張量的list

9print(len(res)) #810

11 res = tf.split(c,axis=3,num_or_size_splits=2) #

num_or_size_split指定要分割的份數,也可以指定每乙份張量數,用列表裝著

12print(len(res)) #

2 生成兩個(2, 4, 35, 4)

13print(res[0].shape) #

(2, 4, 35, 4)

1415 res = tf.split(c,axis=3,num_or_size_splits=[1,2,3,2]) #

指定劃分後的張量的個數,並對劃分後每個張量的維度大小進行指定

16print(res[0].shape) #

(2, 4, 35, 1)

17print(res[1].shape) #

(2, 4, 35, 2)

18print(res[2].shape) #

(2, 4, 35, 3)

19print(res[3].shape) #

(2, 4, 35, 2)

UNIX合併與分割

sort用法 sort命令將許多不同的域按不同的列順序分類.命令格式 sort cmu o output file other options pos1 pos2 input files sort選項 c 測試檔案是否分類 m 合併兩個分類檔案 u 刪除所有複製行 o 儲存sort結果的輸出檔名 b...

TensorFlow 合併與分割

二 分割 合併是指將多個張量在某個維度上合併為乙個張量。以某學校班級成績冊資料為例,設張量a 儲存了某學校1 4 號班級的成績冊,每個班級35 個學生,共8 門科目,則張量a的shape 為 4,35,8 同樣的方式,張量b 儲存了剩下的6 個班級的成績冊,shape 為 6,35,8 通過合併2 ...

檔案的合併與分割

檔案的合併與分割其實比較簡單,分割時將乙個大檔案按二進位制方式讀取,然後按二進位制寫成乙個個小檔案。合併時就把小檔案順次讀取,再寫入乙個大檔案。下面是乙個簡單的例子 檔案分割,二進位制讀取 void cmyupdatedlg onbinary byte buf 140000 緩衝區 dword dw...