![](/img/trans.png)
[英]Keras - How to construct a shared Embedding() Layer for each Input-Neuron
[英]Can I manually slot an input neuron into a hidden layer in Keras?
我有一個 CNN,我想將一些額外的信息潛入最后一層。
這是代碼的簡化版本。 看評論
def define_model():
model = Sequential()
model.add(Conv2D(32, (3,3))
model.add(Conv2D(32, (3,3))
model.add(MaxPooling2D((2,2))
model.add(Conv2D(64, (3,3))
model.add(Conv2D(64, (3,3))
model.add(MaxPooling2D((2,2)))
model.add(Flatten())
# this next layer is where I want to sneak the neuron(s) in
model.add(Dense(1024))
model.add(Dropout(rate=0.4))
model.add(Dense(168))
model.compile()
return model
所以我有一些關於輸入圖像的附加信息,這些信息可能對網絡有幫助。 將其視為可能值得也可能不值得合理加權的線索。
線索是一個整數形式,技術上在 [0, inf) 中,但實際上可能在 [0, 20] 中。
所以我的問題是
用一般的 NN 架構來表示該提示的適當方式是什么。
我如何調整 Keras 模型以在實踐中實現這一點?
獎勵:如果我願意,我是否可以防止后續的退出退出此附加功能?
這可以通過使用 Keras 的函數式 API 來實現:
def define_model():
inputs = Input(input_shape=(...))
hints = Input(input_shape=(...))
x = Conv2D(32, (3,3))(inputs)
x = Conv2D(32, (3,3))(x)
x = MaxPooling2D((2,2))(x)
x = Conv2D(64, (3,3))(x)
x = Conv2D(64, (3,3))(x)
x = MaxPooling2D((2,2))(x)
x = Flatten()(x)
x = Add()([x, hints])
x = Dense(1024)(x)
x = Dropout(rate=0.4)(x)
outputs = Dense(168)(x)
model = Model([inputs, hints], outputs)
model.compile()
return model
我不知道如何使用 Keras 保護它免受輟學。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.