Я обучил глубокому CNN, который предсказывает одномерный массив и сохранил весовые переменные в формате .ckpt
. Но когда я даю модели новые входные данные, она всегда выводит один и тот же массив. Я уже проверил предварительную обработку входов, и я уверен, что они в порядке. Вот код моего предсказания.
import pandas as pd
import numpy as np
import os
import tensorflow as tf
sess = tf.Session()
sess.run(tf.global_variables_initializer())
filename = os.listdir("D:/project/test datasets/image")
new_dir = "D:/project/test datasets/"
for img in filename:
img=os.path.splitext(img)[0]
xs = pd.read_csv(new_dir+img+'.csv',index_col=0)
xs = xs.values.flatten()
xs = np.expand_dims(xs,0)
saver = tf.train.import_meta_graph('model.ckpt.meta')
saver.restore(sess, 'model.ckpt')
graph = tf.get_default_graph()
x = graph.get_tensor_by_name("x:0")
keep_prob = graph.get_tensor_by_name("keep_prob:0")
y_conv = graph.get_tensor_by_name("y_conv:0")
print(sess.run(y_conv,feed_dict={x:xs,keep_prob:1.0}))
И я также обнаружил, что когда я добавляю оператор кода y_conv = tf.constant(0)
в конце l oop, следующий результат будет 0
, что означает, что мое предсказание y_conv
не обновляется в каждом l oop.
Я понятия не имею, где не так. Буду признателен за любые отзывы и советы.