亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Keras:使用模型的一階和二階導數之和作為最終輸出

Keras:使用模型的一階和二階導數之和作為最終輸出

DIEA 2021-09-24 21:29:51
假設我使用 Keras 創建了這個模型:model = Sequential()model.add(Dense(32, activation='tanh', input_dim=1))model.add(Dense(10, activation='tanh'))model.add(Dense(1, activation='linear'))這個模型的輸入和輸出維度都是1?,F在,假設我想再添加一層,它是上面模型的一階導數和二階導數(相對于輸入)的總和,并將其用作我的新輸出層。這在 Keras 中可能嗎?我做了很多谷歌搜索,但找不到任何東西。
查看完整描述

1 回答

?
婷婷同學_

TA貢獻1844條經驗 獲得超8個贊

您可以使用以下命令在 Tensorflowtf.gradients和Keras 中計算梯度K.gradients:


first = K.gradients(model.outputs, model.inputs)

second = K.gradients(first, model.inputs)

這是計算模型中梯度的代碼:


from tensorflow.python.keras import Model, Input

from tensorflow.python.keras import backend as K

from tensorflow.python.keras.layers import Dense, Lambda


def deriative(inps):

    i, o = inps[0], inps[1]

    grad1 = K.gradients(o, i)[0]

    grad2 = K.gradients(grad1, i)[0]

    return K.concatenate([grad1, grad2])



inps = Input(shape=(1,))

dense1 = Dense(32, activation='tanh')(inps)

dense2 = Dense(10, activation='tanh')(dense1)

dense3 = Dense(1, activation='linear')(dense2)


output = Lambda(deriative)([inps, dense3])


new_model = Model(inputs=inps, outputs=output)

new_model.compile('adam', 'mse')

print(new_model.summary())


查看完整回答
反對 回復 2021-09-24
  • 1 回答
  • 0 關注
  • 332 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號