簡體   English   中英

在Keras順序模型中,如何用我自己的權重初始化第二個conv層?

[英]How to Initialize with my own weights for the second conv layer in a Keras sequential model?

我有一個具有兩個卷積層的模型。 我已經成功為conv_1圖層設置了新的權重,但是在設置conv_2圖層的權重conv_2收到錯誤消息:

    model.add(Conv2D(8, (3, 3), input_shape=(28,28,1), activation='relu'))
    model.add(MaxPooling2D(pool_size=(2, 2)))
    model.add(Conv2D(6, (3, 3), input_shape=(26,26,1), activation='relu'))

    model.layers[0].set_weights(w1)
    model.layers[2].set_weights(w2)

在這里, w1.shape == (3, 3, 1, 8)w2.shape == (3, 3, 1, 6) 錯誤消息是:

ValueError: Layer weight shape (3, 3, 8, 6) not compatible with provided weight shape (3, 3, 1, 6)

我不明白為什么不設置權重?

正如我在評論部分中提到的,一種替代方法是對過濾器中的所有通道使用相同的權重。 為此,您可以輕松地將w2的值重復八次,以獲得形狀為(3,3,8,6)的數組:

w2 = w2.repeat(8,axis=2)
w2.shape
# (3,3,8,6)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM