به بخش پرسش و پاسخ یادگیری عمیق خوش آمدید,
این نسخه آزمایشی سایت است.
لطفا به نکات زیر توجه کنید:
  • برای ارتباط با مدیران میتوانید از صفحه مدیران اقدام کنید.
  • سوال و جواب ها باید به زبان فارسی باشند. استفاده از زبان انگلیسی یا فینگلیش برای پاسخ دادن مجاز نیست.
  • لطفا بعد از پرسش سوال لینک سوال خود را در گرو تلگرام (Iran Deep Learning Group) معرفی کنید تا سریعتر به جواب برسید. برای دسترسی به آخرین لینک از منابع یادگیری استفاده کنید
  • لطفا بجای عکس از متن استفاده کنید. اگر متون طولانی هستند از سایت pastebin.com برای اپلود استفاده کرده و لینک حاصل را در سوال خود قرار دهید. برای قرار دادن تصویر ، از بخش ارسال تصویر ادیتور سایت استفاده کنید.
  • بعد از دریافت پاسخ، بهترین پاسخ را از طریق کلیک بر روی علامت تیک انتخاب کنید
  • اگر با خطا و یا مشکلی مواجه شدید از بخش تماس با ما در انتهای صفحه و یا ایمیل Coderx7@gmail.com موضوع را اطلاع دهید.

با تشکر

دسته بندی ها

0 امتیاز

فرض کنید یک بردار 1*n به نام a و یک تنسور k*n*n به نام T داریم و هدف بدست آوردن یک ماتریس هست که از ضرب هر اسلایس از تنسور Tدر a بدست می آید. یعنی در این مثال تنسور ما دارای k ماتریس n*n هست و خروجی باید k ماتریس 1*n باشد. که من از روش زیر برای این پیاده سازی استفاده کردم:

T = tf.Variable(tf.random_normal((k,n,n),mean=0.0,stddev=0.001),name="tensor")
a = tf.Variable(tf.random_normal((n,1)),name="vector")  
t = tf.reshape(T, (k*n,n)).eval()
output = (tf.matmul(t,a))
y = tf.reshape(output,(k,n))
output = tf.transpose(output)

دلیل اعمال ترانهاده در ماتریس خروجی این هست که در انتها میخواهیم نتیجه ضرب بردار در هر اسلایس از تنسور به صورت یک ستون از ماتریس خروجی قرار بگیرد.
سوال من این هست که آیا تابع از پیش نوشته شده یا روش بهینه تری در تنسورفلو برای این محاسبه وجود دارد؟

برای اطلاعات بیشتر در مورد ضرب تنسور در بردار میتوانید به این مقاله مراجعه کنید.
خیلی ممنون

توسط (102 امتیاز)
ویرایش شده توسط

لطفا وارد شده یا عضو شوید تا بتوانید سوال بپرسید

...