আমি tf.nn.conv2d
এখানে প্রায় টেনস্রোফ্লো এর ডক্স তাকিয়ে ছিল । তবে এটি কী করে বা এটি অর্জন করার চেষ্টা করছে তা আমি বুঝতে পারি না। এটি ডক্সে বলে,
# 1: আকারটি সহ ফিল্টারটিকে 2-ডি ম্যাট্রিক্সে ফ্ল্যাট করে
[filter_height * filter_width * in_channels, output_channels]
।
এখন কি করে? সেই উপাদান-ভিত্তিক গুণ বা কেবল সরল ম্যাট্রিক্সের গুণ? ডক্সে উল্লিখিত অন্য দুটি বিষয়ও আমি বুঝতে পারি না। আমি সেগুলি নীচে লিখেছি:
# 2: আকারের ভার্চুয়াল টেনসর গঠনের জন্য ইনপুট টেনসর থেকে চিত্র প্যাচগুলি বের করে
[batch, out_height, out_width, filter_height * filter_width * in_channels]
।# 3: প্রতিটি প্যাচের জন্য ফিল্টার ম্যাট্রিক্স এবং চিত্র প্যাচ ভেক্টরকে ডান গুণ করে।
এটি সত্যিই সহায়ক হবে যদি কেউ উদাহরণ দিতে পারে, একটি টুকরো কোড (অত্যন্ত সহায়ক) হতে পারে এবং সেখানে কী চলছে এবং কেন অপারেশনটি এরকম হচ্ছে তা ব্যাখ্যা করে।
আমি একটি ছোট অংশ কোডিং করার চেষ্টা করেছি এবং অপারেশনটির আকারটি মুদ্রণ করেছি। তবুও বুঝতে পারি না।
আমি এরকম কিছু চেষ্টা করেছি:
op = tf.shape(tf.nn.conv2d(tf.random_normal([1,10,10,10]),
tf.random_normal([2,10,10,10]),
strides=[1, 2, 2, 1], padding='SAME'))
with tf.Session() as sess:
result = sess.run(op)
print(result)
আমি বিট এবং কনভোলশনাল নিউরাল নেটওয়ার্কগুলির টুকরোগুলি বুঝতে পারি। আমি তাদের এখানে অধ্যয়ন করেছি । তবে টেনসরফ্লোতে বাস্তবায়ন আমার প্রত্যাশা নয়। সুতরাং এটি প্রশ্ন উত্থাপন।
সম্পাদনা : সুতরাং, আমি অনেক সহজ কোড প্রয়োগ করেছি। তবে কী হচ্ছে তা আমি বুঝতে পারি না। আমি বোঝাতে চাইছি ফলাফলগুলি এরকম কেমন। এটি অত্যন্ত সহায়ক হবে যদি কেউ আমাকে বলতে পারে কোন প্রক্রিয়াটি এই আউটপুটটি দেয়।
input = tf.Variable(tf.random_normal([1,2,2,1]))
filter = tf.Variable(tf.random_normal([1,1,1,1]))
op = tf.nn.conv2d(input, filter, strides=[1, 1, 1, 1], padding='SAME')
init = tf.initialize_all_variables()
with tf.Session() as sess:
sess.run(init)
print("input")
print(input.eval())
print("filter")
print(filter.eval())
print("result")
result = sess.run(op)
print(result)
আউটপুট
input
[[[[ 1.60314465]
[-0.55022103]]
[[ 0.00595062]
[-0.69889867]]]]
filter
[[[[-0.59594476]]]]
result
[[[[-0.95538563]
[ 0.32790133]]
[[-0.00354624]
[ 0.41650501]]]]
tf.nn.conv2d()
, সুতরাং আমরা যখন জিপিইউ সমর্থন সহ টিএফ ব্যবহার করি তখন প্রশ্নে পদ্ধতিটি মোটেই ব্যবহৃত হয় না, যতক্ষণ নাuse_cudnn_on_gpu=False
স্পষ্টভাবে নির্দিষ্ট না করা হয়।