Я использую сверточные нейронные сети для классификации изображений по 3 меткам. Я сделал все обучение и тестирование и получил точность 60%. Затем я сохранил эту модель и хочу загрузить одно изображение и классифицировать его по одной из этих меток. Код, который я использую:
X_new = process_data() # That's my input image after some processing
pred = convolutional_neural_network(x) # That's my CNN
with tf.Session() as sess:
# Here I restore the trained model
saver = tf.train.import_meta_graph('modelo.meta')
saver.restore(sess, 'modelo')
print('Model loaded')
sess.run(tf.initialize_all_variables())
# Here I'm trying to predict the label of my image
c = sess.run(pred, feed_dict={x: X_new})
print(c)
Когда я печатаю c, он возвращает мне что-то вроде этого:
[[ 1.5495030e+07 -2.3345528e+08 -1.5847101e+08]]
Но я не мог выясни, что это значит и что мне с этим делать. В любом случае, я пытаюсь получить процент от того, насколько изображение принадлежит какому-либо ярлыку. Если кто-нибудь может мне помочь с этим, я буду очень благодарен! Я новичок в tenorflow и у меня возникли трудности.
Большое вам спасибо!
РЕДАКТИРОВАТЬ:
Метод convolutional_neural_network:
def convolutional_neural_network(x):
weights = {'W_conv1': tf.Variable(tf.random_normal([3, 3, 3, 1, 32])),
'W_conv2': tf.Variable(tf.random_normal([3, 3, 3, 32, 64])),
'W_fc': tf.Variable(tf.random_normal([54080, 1024])),
'out': tf.Variable(tf.random_normal([1024, n_classes]))}
biases = {'b_conv1': tf.Variable(tf.random_normal([32])),
'b_conv2': tf.Variable(tf.random_normal([64])),
'b_fc': tf.Variable(tf.random_normal([1024])),
'out': tf.Variable(tf.random_normal([n_classes]))}
x = tf.reshape(x, shape=[-1, IMG_PX_SIZE, IMG_PX_SIZE, HM_SLICES, 1])
conv1 = tf.nn.relu(conv3d(x, weights['W_conv1']) + biases['b_conv1'])
conv1 = maxpool3d(conv1)
conv2 = tf.nn.relu(conv3d(conv1, weights['W_conv2']) + biases['b_conv2'])
conv2 = maxpool3d(conv2)
fc = tf.reshape(conv2, [-1, 54080])
fc = tf.nn.relu(tf.matmul(fc, weights['W_fc']) + biases['b_fc'])
fc = tf.nn.dropout(fc, keep_rate)
output = tf.matmul(fc, weights['out']) + biases['out']
return output