關於keras中的Reshape用法

keras中的Reshape

keras自帶

from keras.layers import Reshape
layer_1 = Reshape((height, width, chns))( layer1)

tensorflow中的reshape函數

from keras import backend as K
K.reshape( layer1,(-1,2,4,8) ) 

keras自大的Reshape層不需要寫batch的維度,但是tensorflow的reshape需要完整的維度。

keras.layers.Reshape方法

from keras.models import Sequential
from keras.layers import Reshape

model = Sequential()
# 改變數據形狀為3行4列
# 模型的第1層必須指定輸入的維度,註意不需要指定batch的大小
model.add(Reshape((3, 4), input_shape=(12, )))
# 改變數據形狀為6行2列
model.add(Reshape((6, 2)))
# 改變數據形狀為 第2,3維為(2,2),根據數據元素數量自動確定第1維大小為3
model.add(Reshape((-1, 2, 2)))
# 改變數據形狀為 第1,2維為(2,2),根據數據元素數量自動確定第3維大小為3
model.add(Reshape((2, 2, -1)))
model.summary()
context_shape = K.int_shape(context) #(None, 7, 7, 32)
    #改變第二維是32,根據數據元素數量自動確定第1維大小為none?
    context = keras.layers.Reshape((-1, context_shape[-1]))(context) #Tensor shape=(None, None, 32), dtype=float32

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: