2015-11-24 18 views
8

का उपयोग कर परिवर्तनीय बैच आकार के साथ काम करता है, मैं इनपुट के परिवर्तनीय बैच आकार को खिलाने के लिए tf.placeholders() ops का उपयोग करता हूं जो 2 डी टेंसर हैं और जब मैं कॉल करता हूं तो उन टेंसर के लिए अलग-अलग मानों की आपूर्ति करने के लिए फ़ीड तंत्र का उपयोग करता हूं ()। मैंएक ग्राफ बनाएं जो टेन्सफोर्लो

TypeError: 'Tensor' object is not iterable.

के बाद मिला मेरी कोड है:

with graph.as_default(): 
    train_index_input = tf.placeholder(tf.int32, shape=(None, window_size)) 
    train_embeddings = tf.Variable(tf.random_uniform([vocabulary_size, embedding_dimension], -1.0, 1.0)) 
    embedding_input = [tf.nn.embedding_lookup(train_embeddings, x) for x in train_index_input] 
    ...... 
    ...... 

मैं ग्राफ चलने के बिना टेन्सर "train_index_input" की सामग्री को नहीं देख सकते हैं, तो "की त्रुटि 'टेन्सर' वस्तु है iterable नहीं "कोड के लिए उठाती है:

embedding_input = [tf.nn.embedding_lookup(train_embeddings, x) for x in train_index_input] 

क्या मैं प्राप्त करने के लिए चाहते हैं एक एम्बेडिंग मैट्रिक्स है" embedding_input "है कि आकार [batch_size, embedding_dimension] जहांकी हैतय नहीं है। क्या मुझे 2 डी टेंसर के लिए लुकअप एम्बेड करने के लिए टेन्सफोर्लो में एक नया ऑपरेशन परिभाषित करना है? या ऐसा करने के किसी भी अन्य तरीके? धन्यवाद

उत्तर

7

आप एक टेंसफोर्लो प्लेसहोल्डर पर एक अजगर स्तर की सूची समझ (for x in train_index_input) करने की कोशिश कर रहे हैं। यह काम नहीं करेगा - पायथन को पता नहीं है कि टीएफ ऑब्जेक्ट के अंदर क्या है।

एक बैच को एम्बेड देखने पूरा करने के लिए, आप अपने बैच बस समतल है क्या कर सकते हैं:

looked_up_embeddings = tf.nn.embedding_lookup(train_embeddings, train_indexes_flat) 

और फिर इसे वापस नयी आकृति प्रदान सही समूहों में:

train_indexes_flat = tf.reshape(train_index_input, [-1]) 

embedding देखने के माध्यम से यह रन :

embedding_input = tf.reshape(looked_up_embeddings, [-1, window_size]) 
+0

मेरे पास एक समान प्रश्न है, इनपुट का आकार '[बैच_साइज, मैक्सस्टेप, 50, 50] 'है, और मैं चाहता हूं इसे '[बैच_साइज, मैक्सस्टेप, 5 * 5 * 32]' बनने के लिए एक निश्चित सीएनएन का उपयोग करें, लेकिन लूप के बिना ग्राफ बनाना मुश्किल है। क्या कोई विचार है? आपका बहुत बहुत धन्यवाद। – Sraw

संबंधित मुद्दे