【问题标题】:TF Slim and inception prediction probabilitiesTF Slim 和初始预测概率
【发布时间】:2018-03-04 06:28:20
【问题描述】:

我已经使用 tf slim (v1.3) 训练了 inception v4 的最后一层,我正在尝试将处理集成到现有工具中,但我无法弄清楚如何生成预测。我想要所有的预测值,而不仅仅是 argmax。我有一个检查点路径和一些带有图像的 numpy 数组(100x100x3,这是我训练的……但扩展到 299x299x3)。有人可以指出我正确的方向吗?我将提供多张图像进行评估,但不一定要成批提供(我可能会运行一个微服务,它获取一张或多张图像并返回结果,但只加载一次检查点以缩短初始化时间)。

【问题讨论】:

    标签: python tensorflow tf-slim


    【解决方案1】:

    这是一个如何做到这一点的示例:

       with tf.Graph().as_default():
            tf_global_step = slim.get_or_create_global_step()
            network_fn = nets_factory.get_network_fn("inception_v4",
                num_classes=5,
                is_training=False)
    
            ##############################################################
            # Create a dataset provider that loads data from the dataset #
            ##############################################################
            provider = slim.dataset_data_provider.DatasetDataProvider(
                dataset,
                shuffle=False,
                common_queue_capacity=2,
                common_queue_min=1)
            [images] = provider.get(['image'])
    
            #####################################
            # Select the preprocessing function #
            #####################################
            image_preprocessing_fn = preprocessing_factory.get_preprocessing(
                "inception_v4",
                is_training=False)
    
            eval_image_size = network_fn.default_image_size
            images = image_preprocessing_fn(images, eval_image_size, eval_image_size)
            images = tf.reshape(images, [eval_image_size, eval_image_size, 3])
            images, _ = tf.train.batch(
                    [images, 0],
                    batch_size=len(dataset.data_sources),
                    num_threads=1,
                    capacity=len(dataset.data_sources))
            ####################
            # Define the model #
            ####################
            logits, _ = network_fn(images)
            variables_to_restore = slim.get_variables_to_restore()
    
            soft = tf.nn.softmax(logits, 1)
            predictions = tf.argmax(logits, 1)
            num_batches = 1
    
            if tf.gfile.IsDirectory(checkpoint_path):
                checkpoint_path = tf.train.latest_checkpoint(checkpoint_path)
    
            tf.logging.info('Evaluating %s' % checkpoint_path)
            r_logits, r_soft, r_prediction = slim.evaluation.evaluate_once(
                master='',
                checkpoint_path=checkpoint_path,
                logdir=eval_dir,
                num_evals=num_batches,
                eval_op=[],
                final_op=[logits, soft, predictions],
                variables_to_restore=variables_to_restore)
    

    【讨论】:

      猜你喜欢
      • 2016-05-23
      • 1970-01-01
      • 2019-09-16
      • 2013-05-22
      • 1970-01-01
      • 2018-10-12
      • 1970-01-01
      • 2019-06-16
      相关资源
      最近更新 更多