का उपयोग करते हुए वाक्य समानता इस work using the STS dataset पर आधारित वाक्य समानता आर्किटेक्चर को लागू करने का प्रयास कर रहा हूं। लेबल सामान्यीकृत समानता स्कोर 0 से 1 तक होते हैं, इसलिए इसे एक रिग्रेशन मॉडल माना जाता है।कैमरे
मेरी समस्या यह है कि नुकसान पहली युग से शुरू होने पर सीधे NaN
पर जाता है। मैं क्या गलत कर रहा हूं?
मैंने पहले से ही नवीनतम केरे और थानो संस्करणों को अद्यतन करने का प्रयास किया है।
अपने मॉडल के लिए कोड है:
def create_lstm_nn(input_dim):
seq = Sequential()`
# embedd using pretrained 300d embedding
seq.add(Embedding(vocab_size, emb_dim, mask_zero=True, weights=[embedding_weights]))
# encode via LSTM
seq.add(LSTM(128))
seq.add(Dropout(0.3))
return seq
lstm_nn = create_lstm_nn(input_dim)
input_a = Input(shape=(input_dim,))
input_b = Input(shape=(input_dim,))
processed_a = lstm_nn(input_a)
processed_b = lstm_nn(input_b)
cos_distance = merge([processed_a, processed_b], mode='cos', dot_axes=1)
cos_distance = Reshape((1,))(cos_distance)
distance = Lambda(lambda x: 1-x)(cos_distance)
model = Model(input=[input_a, input_b], output=distance)
# train
rms = RMSprop()
model.compile(loss='mse', optimizer=rms)
model.fit([X1, X2], y, validation_split=0.3, batch_size=128, nb_epoch=20)
मैं भी Merge
परत के बजाय एक सरल Lambda
उपयोग करने की कोशिश, लेकिन यह एक ही परिणाम है।
def cosine_distance(vests):
x, y = vests
x = K.l2_normalize(x, axis=-1)
y = K.l2_normalize(y, axis=-1)
return -K.mean(x * y, axis=-1, keepdims=True)
def cos_dist_output_shape(shapes):
shape1, shape2 = shapes
return (shape1[0],1)
distance = Lambda(cosine_distance, output_shape=cos_dist_output_shape)([processed_a, processed_b])
पाया हाय, मैं देख रहा हूँ आप StackOverflow के लिए नए हैं। समस्या की पहचान करने में हमारी सहायता के लिए, और उत्तर प्राप्त करने के लिए आपको तेज़ी से आवश्यकता है, क्या कोई अतिरिक्त जानकारी है जो आप प्रदान कर सकते हैं? आप क्या त्रुटियां देख रहे हैं, अगर कोई है? इसके बजाय आप किसकी अपेक्षा करते थे? –
अच्छी तरह से, अब मैं यह पता लगाने की कोशिश कर रहा हूं कि प्रशिक्षण के दौरान मेरा नेटवर्क ** नैन ** क्यों हो जाता है। – lila
शायद आपकी सीखने की दर बहुत अधिक है। शायद एक और समस्या है। यदि आप थेनो का उपयोग कर रहे हैं तो आप अपनी स्क्रिप्ट को अपवाद फेंकने के लिए ['THEANO_FLAGS = 'mode = NanGuardMode''] (http://deeplearning.net/software/theano/tutorial/modes.html) का उपयोग कर सकते हैं। 'नैन' मान का पता लगाया गया है, जिससे आप इस मुद्दे के स्थान पर एक ट्रेसबैक दे रहे हैं। – nemo