में बार-बार होने तंत्रिका नेटवर्क (RNN) के लिए एम्बेडिंग लेयर का उपयोग कैसे करें मैं और तंत्रिका नेटवर्क और Keras लाइब्रेरी के लिए नहीं बल्कि नए हूँ मैं के रूप में वर्णित here मेरी इनपुट डेटा मुखौटा करने के लिए कैसे मैं एम्बेडिंग लेयर का उपयोग कर सकते सोच रहा हूँ RNN के लिए 2 डी टेंसर से 3 डी टेंसर तक। कहते हैं कि मैं आदेश समय टी के लिए फीचर वेक्टर की भविष्यवाणी करने में RNN पिछले 2 सुविधा वैक्टर देने के लिए चाहते हो जाएगाKeras
X_train = [
[1.0,2.0,3.0,4.0],
[2.0,5.0,6.0,7.0],
[3.0,8.0,9.0,10.0],
[4.0,11.0,12.0,13.0],
...
] # with a length of 1000
अब,:
मेरी timeseries डेटा इस प्रकार की तलाश में (एक बढ़ती हुई समय के साथ) कहो +1।
वर्तमान में (एम्बेडिंग परत के बिना), मैं आकार (nb_samples, timesteps, input_dim) के साथ आवश्यक 3 डी टेंसर बना रहा हूं (जैसा कि इस उदाहरण में here) है।
मेरी उदाहरण के लिए संबंधित, अंतिम 3 डी टेन्सर तो के रूप में विचार करेंगे इस प्रकार है:
X_train_2 = [
[[1.0,2.0,3.0,4.0],
[2.0,5.0,6.0,7.0]],
[[2.0,5.0,6.0,7.0],
[3.0,8.0,9.0,10.0]],
[[3.0,8.0,9.0,10.0],
[4.0,11.0,12.0,13.0]],
etc...
]
और Y_train:
Y_train = [
[3.0,8.0,9.0,10.0],
[4.0,11.0,12.0,13.0],
etc...
]
मेरे मॉडल के रूप में निम्नानुसार (ऊपर सरल उदाहरण के लिए अनुकूलित) दिखता है:
num_of_vectors = 2
vect_dimension = 4
model = Sequential()
model.add(SimpleRNN(hidden_neurons, return_sequences=False, input_shape=(num_of_vectors, vect_dimension)))
model.add(Dense(vect_dimension))
model.add(Activation("linear"))
model.compile(loss="mean_squared_error", optimizer="rmsprop")
model.fit(X_train, Y_train, batch_size=50, nb_epoch=10, validation_split=0.15)
और अंततः, मेरा प्रश्न होगा, मैं उन 2 डी टेंसर को कैसे करने से बच सकता हूं 3 डी टेंसर खुद को दोबारा बदल रहा है और इसके बजाय एम्बेडिंग परत का उपयोग करें? मैं के बाद मॉडल = अनुक्रमिक लगता है() मैं की तरह कुछ जोड़ना होगा:
model.add(Embedding(?????))
शायद इस सवाल का जवाब नहीं बल्कि सरल है, मैं बस एम्बेडिंग परत के प्रलेखन से उलझन में हूँ।
शायद मुझे अपनी सभी संख्याओं के पीछे ".0" जोड़ना चाहिए था। मैं वास्तव में एक स्पष्ट विश्लेषण करने की कोशिश नहीं कर रहा हूँ। – Kito