最近看模態融合,用到了 keras 中的 concatenate() 函式,之前沒有搞明白其中的axis這個引數是什麼意思。後來經過一番研究,總算是搞明白了。
先看**
import numpy as np
import keras.backend as k
import tensorflow as tf
a = k.variable(np.array([[
[1,2
],[3
,4]]
,[[5
,6],
[7,8
]]])
)b = k.variable(np.array([[
[9,10
],[11
,12]]
,[[13
,14],
[15,16
]]])
)c1 = k.concatenate(
[a, b]
, axis=0)
c2 = k.concatenate(
[a, b]
, axis=1)
c3 = k.concatenate(
[a, b]
, axis=2)
#試試預設的引數,其實就是從倒數第乙個維度進行融合的。
c4 = k.concatenate(
[a, b]
)c5 = k.concatenate(
[a, b]
,axis=-1
)init = tf.global_variables_initializer(
)with tf.session(
)as sess:
sess.run(init)
print
('***************'
)print
(a.shape,b.shape)
print
('***************'
)print
('*****c1******'
,c1.shape)
print
(sess.run(c1)
)print()
print
('*****c2******'
,c2.shape)
print
(sess.run(c2)
)print()
print
('*****c3******'
,c3.shape)
print
(sess.run(c3)
)print()
print
('*****c4******'
,c4.shape)
print
(sess.run(c4)
)print
('*****c5******'
,c5.shape)
print
(sess.run(c5)
)
再看看輸出的效果:
axis=n表示從第n個維度進行拼接,對於乙個三維矩陣,axis的取值可以為[-3, -2, -1, 0, 1, 2]。簡單點理解:可能從影象上來理解比較複雜,但是如果從數學的角度來 看很簡單,就比如上邊的例子axis=-2,意思是從倒數第2個維度進行拼接,對於三維矩陣而言,這就等同於axis=1。
axis=-1,意思是從倒數第1個維度進行拼接,對於三維矩陣而言,這就等同於axis=2。
兩個 (2,2,2)(2,2,2)的陣列進行融合,,
[1][2]
keras中sample weight的使用
sample weight的作用就是為資料集中的資料分配不同的權重。我的例子是要將資料集的資料分為三類,用0,1,2代表這三類,我這裡想為0分配權重0.3,為1分配權重1,為2分配權重2.我的資料是儲存在csv檔案中的,我提取出標籤列表,標籤列表的內容是0,1,2的集合,列表名稱為y train。我...
keras中遇到的錯誤
在執行其他開源keras專案時,遇到了一些問題 1 在匯入 obtain input shape時 出現錯誤如下 importerror cannot import name obtain input shape 2 在使用 obtain input shape方法時出現錯誤 obtain inpu...
keras 中的 verbos的用法
在 fit 和 evaluate 中 都有 verbose 這個引數,下面詳細說一下 verbose 日誌顯示 verbose 0 為不在標準輸出流輸出日誌資訊 verbose 1 為輸出進度條記錄 verbose 2 為每個epoch輸出一行記錄 注意 預設為 1 verbose 日誌顯示 ver...