উত্তর:
কোন টেন্সর দ্বারা ফিরে Session.run
বা eval
একটি NumPy অ্যারে।
>>> print(type(tf.Session().run(tf.constant([1,2,3]))))
<class 'numpy.ndarray'>
বা:
>>> sess = tf.InteractiveSession()
>>> print(type(tf.constant([1,2,3]).eval()))
<class 'numpy.ndarray'>
বা, সমতুল্য:
>>> sess = tf.Session()
>>> with sess.as_default():
>>> print(type(tf.constant([1,2,3]).eval()))
<class 'numpy.ndarray'>
সম্পাদনা করুন: না কোন টেন্সর দ্বারা ফিরে Session.run
বা eval()
একটি NumPy অ্যারে। উদাহরণস্বরূপ স্পার্স টেনারগুলি স্পার্সটেনসরভ্যালু হিসাবে ফিরে আসে:
>>> print(type(tf.Session().run(tf.SparseTensor([[0, 0]],[1],[1,2]))))
<class 'tensorflow.python.framework.sparse_tensor.SparseTensorValue'>
টেনসর থেকে ন্যাপি অ্যারেতে ফিরে রূপান্তর করতে আপনি কেবল .eval()
ট্রান্সফর্মড টেনসারে চালাতে পারেন ।
ValueError: Cannot evaluate tensor using 'eval()': No default session is registered. Use 'with sess.as_default()' or pass an explicit session to 'eval(session=sess)'
কি কেবল টেনসফ্লো সেশনের সময় ব্যবহারযোগ্য?
.eval()
একটি অধিবেশন থেকে পদ্ধতি কলটি চালানো দরকার : sess = tf.Session(); with sess.as_default(): print(my_tensor.eval())
ইজিগার এক্সিকিউশনটি ডিফল্টরূপে সক্ষম হয়, তাই কেবল .numpy()
টেনসর অবজেক্টে কল করুন।
import tensorflow as tf
a = tf.constant([[1, 2], [3, 4]])
b = tf.add(a, 1)
a.numpy()
# array([[1, 2],
# [3, 4]], dtype=int32)
b.numpy()
# array([[2, 3],
# [4, 5]], dtype=int32)
tf.multiply(a, b).numpy()
# array([[ 2, 6],
# [12, 20]], dtype=int32)
এটি (দস্তাবেজগুলি থেকে) লক্ষ্য করার মতো,
নম্পি অ্যারে টেন্সর অবজেক্টের সাথে মেমরি ভাগ করতে পারে। একের যে কোনও পরিবর্তন অন্যটিতে প্রতিফলিত হতে পারে।
বোল্ড জোর আমার। একটি অনুলিপি ফিরে আসতে পারে এবং নাও হতে পারে এবং এটি একটি বাস্তবায়ন বিশদ।
যদি ইজিগার এক্সিকিউশন অক্ষম থাকে, আপনি একটি গ্রাফ তৈরি করতে পারেন এবং তারপরে এটি চালাতে পারেন tf.compat.v1.Session
:
a = tf.constant([[1, 2], [3, 4]])
b = tf.add(a, 1)
out = tf.multiply(a, b)
out.eval(session=tf.compat.v1.Session())
# array([[ 2, 6],
# [12, 20]], dtype=int32)
নতুনটিতে পুরানো এপিআই-এর ম্যাপিংয়ের জন্য টিএফ ২.০ সিম্বলস ম্যাপও দেখুন ।
eval()
।
তোমার দরকার:
কোড:
import tensorflow as tf
import matplotlib.pyplot as plt
import PIL
...
image_tensor = <your decoded image tensor>
jpeg_bin_tensor = tf.image.encode_jpeg(image_tensor)
with tf.Session() as sess:
# display encoded back to image data
jpeg_bin = sess.run(jpeg_bin_tensor)
jpeg_str = StringIO.StringIO(jpeg_bin)
jpeg_image = PIL.Image.open(jpeg_str)
plt.imshow(jpeg_image)
এটি আমার পক্ষে কাজ করেছে। আপনি এটি একটি আইপথন নোটবুক চেষ্টা করতে পারেন। কেবল নিম্নলিখিত লাইনটি যুক্ত করতে ভুলবেন না:
%matplotlib inline
চতুরত্বের গ্রন্থাগার / টিউটোরিয়ালগুলির সাথে প্রাপ্ত টেনারগুলির ( অ্যাডভারসিয়াল ) চিত্রগুলি উপস্থাপনের নির্দিষ্ট ক্ষেত্রে আমি টেনসর-> ন্যাডর্রে রূপান্তরটির সমাধান করেছি এবং সমাধান করেছি ।
আমি মনে করি যে আমার প্রশ্ন / উত্তর ( এখানে ) অন্যান্য ক্ষেত্রেও সহায়ক উদাহরণ হতে পারে।
টেনসরফ্লো দিয়ে আমি নতুন, আমার একটি অভিজ্ঞতা অভিজ্ঞতা:
মনে হচ্ছে সফল হওয়ার জন্য tensor.eval () পদ্ধতির প্রয়োজন হতে পারে, ইনপুট স্থানধারীদের জন্য মানও । টেনসর কোনও ফাংশনের মতো কাজ করতে পারে যা feed_dict
কোনও আউটপুট মান ফেরত দিতে তার ইনপুট মানগুলি (সরবরাহ করা হয় ) প্রয়োজন eg
array_out = tensor.eval(session=sess, feed_dict={x: x_input})
দয়া করে নোট করুন যে স্থানধারকের নামটি আমার ক্ষেত্রে x , তবে আমি মনে করি আপনার ইনপুট স্থানধারকের জন্য সঠিক নামটি খুঁজে পাওয়া উচিত ।
x_input
ইনপুট ডেটাযুক্ত একটি স্কেলারের মান বা অ্যারে।
আমার ক্ষেত্রে প্রদানও sess
বাধ্যতামূলক ছিল।
আমার উদাহরণটি ম্যাটপ্ল্লিটিব চিত্রের ভিজ্যুয়ালাইজেশনের অংশও কভার করে তবে এটি ওটি।
একটি সাধারণ উদাহরণ হতে পারে,
import tensorflow as tf
import numpy as np
a=tf.random_normal([2,3],0.0,1.0,dtype=tf.float32) #sampling from a std normal
print(type(a))
#<class 'tensorflow.python.framework.ops.Tensor'>
tf.InteractiveSession() # run an interactive session in Tf.
n এখন যদি আমরা এই টেনসরটিকে একটি নমপি অ্যারে রূপান্তর করতে চাই
a_np=a.eval()
print(type(a_np))
#<class 'numpy.ndarray'>
এর মত সহজ!
//
অজগর মন্তব্য করার জন্য নয়। আপনার উত্তর সম্পাদনা করুন।
আমি এই আদেশের জন্য দিনগুলি অনুসন্ধান করছিলাম।
এটি কোনও সেশনের বাইরে বা এই জাতীয় কিছু করার জন্য আমার পক্ষে কাজ করেছে।
# you get an array = your tensor.eval(session=tf.compat.v1.Session())
an_array = a_tensor.eval(session=tf.compat.v1.Session())
https://kite.com/python/answers/how-to-convert-a-tensorflow-tensor-to-a-numpy-array-in-python
আপনি কেরাস ব্যাকএন্ড ফাংশন ব্যবহার করতে পারেন।
import tensorflow as tf
from tensorflow.python.keras import backend
sess = backend.get_session()
array = sess.run(< Tensor >)
print(type(array))
<class 'numpy.ndarray'>
আমি আসা করি এটা সাহায্য করবে!