簡體   English   中英

keras神經網絡中用於多標簽回歸的未知問題

[英]unknown problem(S) in a keras neural network for multi-label regression

我是神經網絡和keras的新手,試圖在放入真實數據之前確保一切正常。

所以這里的神經網絡有1000個樣本,三個輸入和三個輸出

X.csv包含:(索引重復了三遍)

1,1,1

2,2,2

直到1000,1000,1000

Y.csv包含三個標簽:(索引,索引* 5,索引/ 5)

1,5,0.2

2,10,0.4

直到1000,5000,200

random.seed(42)
X = np.genfromtxt(r'C:\Users\boss\Desktop\X.csv' , delimiter=',')
y = np.genfromtxt(r'C:\Users\boss\Desktop\Y.csv' , delimiter=',')
y1,y2,y3 = y[:, 0:1],y[:, 1:2],y[:, 2:]
X_train, X_test, y1_train, y1_test, y2_train, y2_test, y3_train, y3_test = train_test_split(X, y1,y2,y3, test_size =0.3, random_state = 0)
X_train = sc.fit_transform(X_train)
X_test = sc.transform(X_test)

inp = Input((3,)) 
x = Dense(10, activation='relu')(inp)
x = Dense(10, activation='relu')(x)
x = Dense(10, activation='relu')(x)
out1 = Dense(1,  activation='linear')(x)
out2 = Dense(1,  activation='linear')(x)
out3 = Dense(1,  activation='linear')(x)

model = Model(inputs=inp, outputs=[out1,out2,out3])
model.compile(optimizer = "adam", loss = 'mse')
model.fit(x=X_train, y=[y1_train,y2_train,y3_train], batch_size=100, epochs=10, verbose=1, validation_split=0.3,  shuffle=True)            

#plot predicted data vs real data
y_pred = model.predict(X_test)
plt.plot(y1_test, color = 'red', label = 'Real data')
plt.plot(y_pred[0], color = 'blue', label = 'Predicted data')
plt.title('y1')
plt.legend()
plt.show()

plt.plot(y2_test, color = 'red', label = 'Real data')
plt.plot(y_pred[1], color = 'blue', label = 'Predicted data')
plt.title('y2')
plt.legend()
plt.show()

plt.plot(y3_test, color = 'red', label = 'Real data')
plt.plot(y_pred[2], color = 'blue', label = 'Predicted data')
plt.title('y3')
plt.legend()
plt.show()

不幸的是,損失和驗證損失都很大(百萬)。另一個問題是,盡管使用了隨機種子,但每次結果都不同

造成高損失的一個可能原因是歷元數少-僅用10個就很難獲得好的結果。嘗試100、1000等,以查看結果如何改善。

為了產生可重現的隨機數,您還需要為Numpy和TensorFlow指定種子(如果使用的是TensorFlow后端,則為默認值)。 這是本文給出的示例:

from numpy.random import seed
seed(1)
from tensorflow import set_random_seed
set_random_seed(2)

暫無
暫無

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

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