سلام . من یک شبکه کانولوشن برای تشخیص تصاویر طراحی کرده ام. شبکه به خوبی train شده و نتایج قابل قبولی دارد. شبکه به خوبی save میشود و در هنگام load به تمام وزن ها و بایاس ها می توان دسترسی داشت. اما زمانی که میخواهیم شبکه را تست کنیم ارور می دهد.
ورودی های شبکه دو placeholder
با نام های Input_Flatten
و Target
است. که به صورت زیر تعریف شده است:
Input_Flatten= tf.placeholder(tf.float32, shape= [None,2500,name="Input_Flatten")
Target = tf.placeholder(tf.float32, shape=[None, 2],name="Target")
برای لود شبکه از دستورهای زیر استفاده می شود:
saver = tf.train.import_meta_graph('Localization_On_CNN_Save-1.meta')
saver.restore(sess,tf.train.latest_checkpoint('./'))
graph = tf.get_default_graph()
سپس placeholder ها و fc_2 با دستورات زیر get میشود:
Input_Flatten = graph.get_tensor_by_name("Input_Flatten:0")
Target = graph.get_tensor_by_name("Target:0")
fc_2 = graph.get_tensor_by_name("fc_2:0")
حال برای تست شبکه از دستور زیر استفاده می کنیم:
sess.run(fc_2,feed_dict={Input_Flatten:Pic4, Target:label})
fc_2
: خروجی آخرین لایه fc است.
Pic4
یک ماتریس (2500و1) است
label
نیز یک ماتریس (1,2) است.
ولی به خطای زیر برمیخوریم:
https://pastebin.com/x5jfiArS