2016-03-27 9 views
10

के प्रत्येक तत्व के लिए ओप लागू करता है जो मैं बाद में 2 डी टेंसर के प्रत्येक तत्व के लिए एक tensorflow सेशन लागू करने की क्षमता है।Tensorflow 2 डी टेंसर

input = tf.Variable([[1.0, 2.0], [3.0, 4.0]) 
myCustomOp = ... # some kind of custom op that operates on 1D tensors 
finalResult = tf.[thing I'm after](input, myCustomOp) 
# when run final result should look like: [myCustomOp([1.0, 2.0]), myCustomOp([3.0, 4.0)] 

कोई विचार?

+2

शायद 'map_fn'? डॉक्स - https://github.com/tensorflow/tensorflow/blob/5688f5bc27e65886ca84ea4a9d58f4bb7701964b/tensorflow/g3doc/api_docs/python/control_flow_ops.md#tfmap_fnfn-elems-dtypenone-parallel_iterations10-back_proptrue-swap_memoryfalse-namenone-map_fn –

उत्तर

19

TensorFlow (0.8 है, जो वर्तमान में उपलब्ध है अगर आप स्रोत से तैयार करते हैं या रात का निर्माण डाउनलोड) के अगले संस्करण higher-order operatorstf.map_fn() और tf.scan() है कि आप एक समारोह की subtensors को TensorFlow ऑप्स से बना लागू करने की अनुमति भी शामिल है एक बड़ा टेंसर।

tf.map_fn(fn, elems, ...) समारोह कई N-1 आयामी subtensors में पहला आयाम में N आयामी इनपुट elems unpacks और प्रत्येक subtensor को fn लागू होता है। यह आपके उपयोग के मामले को पूरी तरह फिट करने लगता है:

input = tf.Variable([[1.0, 2.0], [3.0, 4.0]]) 
function_to_map = lambda x: f(x) # Where `f` instantiates myCustomOp. 
final_result = tf.map_fn(function_to_map, input) 
+0

धन्यवाद है कि वास्तव में क्या मैं –

+0

के बाद हूं क्योंकि 'tf.map_fn' अब मौजूद है,' tf.batch_matrix_inverse' अनावश्यक 'जैसे कार्य हैं, क्योंकि उन्हें' tf.map_fn (tf.matrix_inverse, input) 'द्वारा प्रतिस्थापित किया जा सकता है? – dzhelil

+1

सिद्धांत रूप में हां, लेकिन व्यवहार में 'tf.batch _ *() 'ops का प्रदर्शन शायद बेहतर होगा। मैं उस दिन की प्रतीक्षा करता हूं जब अनुकूलक मानचित्र-आधारित संस्करण के लिए बेहतर कोड उत्पन्न करने के लिए पर्याप्त है! – mrry

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