如何在没有占位符作为Tensorflow输入的情况下从保存的模型进行预测?

时间:2019-05-12 12:36:39

标签: python tensorflow deep-learning conv-neural-network

我使用tf.Dataset和tf.Data.Iterator而不是占位符作为输入训练了VGG13,如何在加载模型时进行自定义预测?

通常,如果我的模型是使用占位符训练的,则可以使用graph.get_operation_by_name()获取占位符并将预测输入反馈给占位符。但是,当没有占位符时,我不知道如何将数据输入模型。

这就是我定义数据集的方式。 .csv文件包含文件名和数据标签。而且所有图像都位于一个文件夹中。

def read_image(*row):
    image = tf.read_file('data/' + feature.TRAIN_CURATED_IMAGE_DIR + '/' + row[0])
    image = tf.reshape(tf.image.decode_jpeg(image), [self.img_height, self.img_width, self.input_x_dim])
    image = tf.cast(image, tf.float32)
    label = tf.cast(row[1:], tf.float32)
    return image, label

    path = 'data/' + feature.TRAIN_CURATED_IMAGE_LABEL_PATH
    print('Using image input.')
    print('Loading data from {}'.format(path))
    dataset = tf.data.experimental.CsvDataset(path,
                                              record_defaults=[tf.string]+[tf.int32 for _ in range(self.class_num)],
                                              header=True)
    dataset = dataset.map(read_image).shuffle(int(total_size*0.5))

# ... 
self.next_element = iterator.get_next()

这就是我设置输入的方式。

self.input_x = self.next_element[0]
self.input_y = self.next_element[1]
# Following conv layers...

由于self.input_xself.input_y不是占位符,如果我想在训练后加载模型,如何将数据馈送到以下转换层并获得预测?

0 个答案:

没有答案