TLDR: अनुक्रम में अगले मान की भविष्यवाणी करने के लिए मैं केरास आरएनएन का उपयोग कैसे करूं?एक केरास आवर्ती तंत्रिका नेटवर्क का उपयोग कर भविष्यवाणियां - सटीकता हमेशा 1.0
मेरे पास अनुक्रमिक मानों की एक सूची है। मैं उन्हें पर अनुक्रम में अगले मान को आरएनएन में फ़ीड करना चाहता हूं।
[ 0.43589744 0.44230769 0.49358974 ..., 0.71153846 0.70833333 0.69230769]
मैं Keras उपयोग कर रहा हूँ यह करने के लिए और एक कम नुकसान के साथ एक नेटवर्क प्राप्त कर सकते हैं लेकिन सटीकता लगातार 1.0 है। ये गलत है। y_tests != model.predict(x_tests)
।
Epoch 0
1517/1517 [==============================] - 0s - loss: 0.0726 - acc: 1.0000 - val_loss: 0.0636 - val_acc: 1.0000
Epoch 1
1517/1517 [==============================] - 0s - loss: 0.0720 - acc: 1.0000 - val_loss: 0.0629 - val_acc: 1.0000
...
मेरा नेटवर्क यहां है।
model = Sequential()
model.add(SimpleRNN(1, 100))
model.add(Dense(100, 1, activation = "sigmoid"))
model.compile(loss="mean_squared_error", optimizer = "sgd")
मैंने एक सरलआरएनएन, जीआरयू और एलएसटीएम की कोशिश की है लेकिन कोई भाग्य नहीं है। यहां बताया गया है कि डेटा कैसे स्वरूपित किया गया है।
# Current value
y_train = [[ 0.60576923] [ 0.64102564] [ 0.66025641] ..., [ 0.71153846] [ 0.70833333] [ 0.69230769]]
# Previous 10 values
x_train_10 = [
[[ 0.65064103] [ 0.66346154] [ 0.66346154] ..., [ 0.72115385] [ 0.72435897] [ 0.71153846]] ...,
[[ 0.66346154] [ 0.66346154] [ 0.67628205] ..., [ 0.72435897] [ 0.71153846] [ 0.70833333]]
]
# Previous value
x_train_1 = [[ 0.58333333] [ 0.60576923] [ 0.64102564] ..., [ 0.72435897] [ 0.71153846] [ 0.70833333]]
# So here are the shapes...
y_train.shape = (1895, 1)
x_train_10.shape = (1895, 10, 1)
x_train_1.shape = (1895, 1)
x_train_10
में प्रत्येक तत्व पिछले 10 मानों की सूची है। मैंने इसे केरास के दस्तावेज़ीकरण का पालन करने के लिए इस तरह स्वरूपित किया कि पुनरावर्ती परतें (nb_samples, timesteps, input_dim)
आकार का इनपुट लेती हैं।
मैंने किसी भी भाग्य के साथ Embedding
परत का उपयोग करने का भी प्रयास किया है। (यह इसका उपयोग करने का गलत तरीका हो सकता है - मैंने केवल इसे वर्गीकरण में भविष्यवाणी नहीं किया है)।
model = Sequential()
model.add(Embedding(1, 30))
model.add(LSTM(30, 100))
...
pad_sequences
भी काम नहीं किया।
x_train_1 = sequence.pad_sequences(x_train_1, maxlen = None, dtype = "float32")
मैं RNN इस सरल डेटा/वास्तुकला के साथ काम कर रहा तो मैं बाद में अधिक जटिल समस्याओं के लिए उपयोग कर सकते हैं करना चाहते हैं।
धन्यवाद :)