我已经设法在我的数据上训练attention_ocr,我现在正在尝试进行推理运行(tensorflow 版本 1.2.1)。
我根据 git README 中提到的内容使用以下代码来使用预训练模型,但我总是得到一个重复字符列表,每次运行都会发生变化(如 [38,38,38...] ) . 这显然是错误的,因为根据训练期间对测试集的评估,我的字符准确率应该在 90% 以上!
以前有人试过吗?或者有人可以为我提供一些修复它的提示吗?
images_placeholder = tf.placeholder(tf.float32, shape=[1, height, width, channels])
images_actual_data = cv2.imread(imageFname)
images_actual_data = cv2.cvtColor(images_actual_data, cv2.COLOR_BGR2RGB)
# some range normalization that is also done for training data
images_actual_data = images_actual_data.astype('float32')
images_actual_data -= images_actual_data.min()
images_actual_data /= images_actual_data.max()
images_actual_data -= 0.5
images_actual_data *= 2.5
model = common_flags.create_model(69,23,1,68) # based on the trained model
endpoints = model.create_base(images_placeholder, labels_one_hot=None)
with tf.Session() as sess:
init_fn = model.create_init_fn_to_restore('/path-to-trained-models/model.ckpt-1126202', '')
sess.run(tf.global_variables_initializer()) # tried to run sess.run(init_fn) here, but it fails
predictions = sess.run(endpoints.predicted_chars, feed_dict={images_placeholder:images_actual_data.reshape(1,imHeight,imWidth,imChannel)})
print predictions