/ / टेंसोफ़्लो में एक टेंसर से एक नया मैट्रिक्स बनाना - टेंसोरफ़्लो

Tensorflow में tensor से एक नया मैट्रिक्स बनाना - tensorflow

मान लें कि मेरे पास 3 चैनलों के साथ (7,7,3) छवि है। मैं इस तरह की छवि का उपयोग करके एक मैट्रिक्स ए कैसे बना सकता हूं कि प्रत्येक पंक्ति में पड़ोसी पिक्सेल के जोड़ीदार कनेक्शन शामिल हैं? मुझे पता है कि यह आसानी से छोरों के लिए अजगर के साथ किया जा सकता है लेकिन हम एक टेंसरफ्लो ग्राफ के भीतर यह कैसे कर सकते हैं?

मैट्रिक्स ए का उदाहरण:

[[pixel1 pixel2],
[pixel1 pixel3],
[pixel1 pixel4],
.....so on    ]]

उत्तर:

जवाब के लिए 3 № 1

आप कुछ मैट्रिक्स बीजगणित का उपयोग करके ऐसा कर सकते हैं। विचार को स्पष्ट करने के लिए, मान लीजिए कि आप 1 डी वेक्टर के लिए ऐसा करना चाहते हैं।

आप पड़ोसियों के जोड़े प्राप्त करने के लिए स्वयं के स्थानांतरित संस्करण के साथ वेक्टर को ढेर कर सकते हैं

n = 5
a = tf.range(n)
left = tf.stack([a[1:], a[:n-1]])
left = tf.transpose(left)

यहां छवि विवरण दर्ज करें

पूंछ को काटकर और अलग-अलग ऑफसेट के लिए दोहराकर आप बाएं पड़ोसियों और सही पड़ोसियों को प्राप्त कर सकते हैं

right = tf.stack([a[:n-1], a[1:]])
right = tf.transpose(right)

यहां छवि विवरण दर्ज करें

किनारे के प्रभावों को अनदेखा करने के लिए आप छोरों को काट सकते हैं और रैंक -3 मैट्रिक्स में फिर से स्टैक कर सकते हैं

stacked_neighbors = tf.stack([left[:-1], right[1:]])

यहां छवि विवरण दर्ज करें

अब पड़ोसियों को इंटरलेव करने के लिए हम ट्रांसपोज़ और रिशेप के साथ एक चाल का उपयोग कर सकते हैं।

stacked_neighbors = tf.transpose(stacked_neighbors, [1, 0, 2])

यहां छवि विवरण दर्ज करें

चूंकि डेटा संग्रहण पंक्ति-प्रमुख क्रम में है, मूल की तुलना में कम आयामों में फेरबदल, बाईं ओर अतिरिक्त आयामों को फिर से आकार देता है

stacked_neighbors = tf.reshape(stacked_neighbors, [6,2])

यहां छवि विवरण दर्ज करें