2016-08-23 9 views
10

के माध्यम से स्केलर कैसे पास करूं? मेरा टेन्सरफ़्लो मॉडल एक चर शुरू करने के लिए tf.random_uniform का उपयोग करता है। जब मैं प्रशिक्षण शुरू करता हूं तो मैं सीमा निर्दिष्ट करना चाहता हूं, इसलिए मैंने प्रारंभिक मान के लिए प्लेसहोल्डर बनाया है।मैं एक टेंसरफ्लो फ़ीड डिक्शनरी

init = tf.placeholder(tf.float32, name="init") 
v = tf.Variable(tf.random_uniform((100, 300), -init, init), dtype=tf.float32) 
initialize = tf.initialize_all_variables() 

मैं प्रशिक्षण की शुरुआत में चर शुरू करता हूं।

ValueError: initial_value must have a shape specified: Tensor("Embedding/random_uniform:0", dtype=float32) 

मैं सही shapetf.placeholder को पारित करने के लिए पैरामीटर को समझ नहीं सकता:

session.run(initialize, feed_dict={init: 0.5}) 

यह मैं निम्न त्रुटि देता है। मैं एक अदिश मैं init = tf.placeholder(tf.float32, shape=0, name="init") क्या करना चाहिए के लिए लगता होगा, लेकिन यह निम्न त्रुटि देता है:

ValueError: Incompatible shapes for broadcasting: (100, 300) and (0,) 

अगर मैं कॉल में शाब्दिक मूल्य 0.5tf.random_uniform लिए यह काम करता है के साथ init बदलें।

मैं फ़ीड डिक्शनरी के माध्यम से इस स्केलर प्रारंभिक मूल्य को कैसे पास करूं?

उत्तर

19

टी एल; डॉ: एक अदिश आकार के साथ init परिभाषित इस प्रकार है:

init = tf.placeholder(tf.float32, shape=(), name="init") 

यह tf.random_uniform() की एक दुर्भाग्यपूर्ण कार्यान्वयन विस्तार की तरह दिखता है: यह वर्तमान में tf.add() और tf.multiply() का उपयोग करता है [से यादृच्छिक मूल्य rescale करने - 1, +1] से [minval, maxval], लेकिन यदि minval या maxval का आकार अज्ञात है, tf.add() और tf.multiply() उचित आकार का अनुमान नहीं लगा सकता है, क्योंकि इसमें प्रसारण शामिल हो सकता है।

एक ज्ञात आकार (जहां एक अदिश () या [], नहीं 0 है) के साथ init परिभाषित करके, TensorFlow tf.random_uniform() का परिणाम के आकार के बारे में उचित अनुमान आकर्षित कर सकते हैं, और के रूप में इरादा अपने कार्यक्रम काम करना चाहिए।

+2

क्या आप और यूजीन ब्रेवडो इन प्रश्नों को आपकी पूर्णकालिक नौकरियों का उत्तर दे सकते हैं? :-) –

+3

सात में से एक सप्ताह, यह मेरी पूर्णकालिक नौकरी है - अन्य सप्ताह मैं इसे मजाक के लिए करता हूं! :-) – mrry

+0

@mrry क्या आप इस प्रश्न को देख सकते हैं http://stackoverflow.com/questions/41930725/tensorflow-pass-an-integer-to-graph। धन्यवाद! – void

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