में एम्बेडिंग मैट्रिक्स शब्द का केवल एक हिस्सा अपडेट करें मान लें कि मैं प्रशिक्षण के दौरान एक पूर्व-प्रशिक्षित शब्द-एम्बेडिंग मैट्रिक्स को अपडेट करना चाहता हूं, क्या एम्बेडिंग मैट्रिक्स शब्द का केवल एक सबसेट अपडेट करने का कोई तरीका है?टेन्सफोर्लो
मैं Tensorflow API पृष्ठ में देखा और इस पाया है:
# Create an optimizer.
opt = GradientDescentOptimizer(learning_rate=0.1)
# Compute the gradients for a list of variables.
grads_and_vars = opt.compute_gradients(loss, <list of variables>)
# grads_and_vars is a list of tuples (gradient, variable). Do whatever you
# need to the 'gradient' part, for example cap them, etc.
capped_grads_and_vars = [(MyCapper(gv[0]), gv[1])) for gv in grads_and_vars]
# Ask the optimizer to apply the capped gradients.
opt.apply_gradients(capped_grads_and_vars)
हालांकि मैं कैसे लागू करते हैं कि शब्द-embedding मैट्रिक्स के लिए। मान लीजिए मैं करता हूँ:
word_emb = tf.Variable(0.2 * tf.random_uniform([syn0.shape[0],s['es']], minval=-1.0, maxval=1.0, dtype=tf.float32),name='word_emb',trainable=False)
gather_emb = tf.gather(word_emb,indices) #assuming that I pass some indices as placeholder through feed_dict
opt = tf.train.AdamOptimizer(1e-4)
grad = opt.compute_gradients(loss,gather_emb)
कैसे मैं तो opt.apply_gradients
और tf.scatter_update
प्रयोग करते हैं मूल embeddign मैट्रिक्स अद्यतन करने के लिए? (इसके अलावा, tensorflow एक त्रुटि फेंकता है तो compute_gradient
का दूसरा तर्क एक tf.Variable
नहीं है)
कैसे आप "सबसेट" यहाँ परिभाषित करते हैं ? – viksit
एम्बेडिंग मैट्रिक्स में पंक्तियों का केवल एक सबसेट।चूंकि प्रत्येक पंक्ति एक शब्द-एम्बेडिंग वेक्टर है, यह मूल शब्द एम्बेडिंग मैट्रिक्स – user1718064
http://deeplearning.net/software/theano/tutorial/faq_tutorial.html से शब्द-एम्बेडिंग वैक्टर का सिर्फ एक उप-समूह है, यही वह है जो मैं चाहता हूं प्राप्त करने के लिए लेकिन Tensorflow – user1718064