我有一個物理問題:構建一個產品10個輸出參數(寬度,長度,材料等)是根據10個輸入參數(性能,溫度,容量,等等..)。輸出參數顯然取決於輸入參數。但我不知道如何。例如,輸出參數O1可以依賴於輸入參數I1,I2和I3。10個輸入和10個輸出的神經網絡
我已經得到了可以說他們的輸入/輸出參數30k產品的數據。該數據庫是這樣的:
----------------------------------------------
| Product| I1 | I2 | I3 | ... | O1 | O2 | 03 |
----------------------------------------------
| Prod A | 1.2| 2.3| 4.2| ... | 5.3| 6.2| 1.2|
----------------------------------------------
| Prod B | 2.3| 4.1| 1.2| ... | 8.2| 5.2| 5.0|
----------------------------------------------
| Prod C | 6.3| 3.7| 9.1| ... | 3.1| 4.1| 7.7|
----------------------------------------------
| ... | |
----------------------------------------------
所以我需要做的是找到輸出中的參數基於輸入參數I 1 O 1-O 10 - 10我
首先問:如果我知道它是正確的,這是一個迴歸問題,基於一些輸入值,我想找到一些輸出值(在數據中有一個函數/形式來確定正確的值)。它是否正確?
我的想法是用/訓練神經網絡(使用keras和tensorflow作爲後端)
如何將這種神經網絡是什麼樣子?最佳做法是什麼?
這是我到目前爲止: 輸入層有10個輸入,兩個完全連接的深層有100個神經元和一個有10個輸出的層。在此keras看起來是這樣的:
def baseline_model(self, callback):
model = Sequential()
model.add(Dense(100, input_dim=10, activation="relu"))
model.add(Dense(100, activation="relu"))
model.add(Dense(10))
model.compile(loss='mean_squared_error', optimizer='adam', metrics=["accuracy"])
model.fit(input_train, output_train, batch_size=5, epochs=2000, verbose=2, callbacks=[callback], shuffle=True, validation_data=(input_val,output_val))
scores = model.evaluate(input_val, output_val, verbose=1)
print("Scores:",scores)
當然的模型不能正常工作像預期的,這就是爲什麼我要求幫助...培訓failes:
Epoch 1999/2000
7s - loss: 47634520366153.6016 - acc: 0.0000e+00 - val_loss: 9585392308285.4395 - val_acc: 0.0000e+00
任何建議什麼我應該改變?我想過使用「sigmoid」作爲激活並將數據規範化爲[0,1]。
感謝您的任何意見