def _preproc_image_batch(self, batch_size, num_threads=1):
'''
This function is only used for queue input pipeline. It reads a filename
from the filename queue, decodes the image, pushes it through a pre-processing
function and then uses tf.train.batch to generate batches.
:param batch_size: int, batch size
:param num_threads: int, number of input threads (default=1)
:return: tf.Tensor, batch of pre-processed input images
'''
if ("resnet_v2" in self._network_name) and (self._preproc_func_name is None):
raise ValueError("When using ResNet, please perform the pre-processing "
"function manually. See here for details: "
"https://github.com/tensorflow/models/tree/master/slim")
# Read image file from disk and decode JPEG
reader = tf.WholeFileReader()
image_filename, image_raw = reader.read(self._filename_queue)
image = tf.image.decode_jpeg(image_raw, channels=3)
# Image preprocessing
preproc_func_name = self._network_name if self._preproc_func_name is None else self._preproc_func_name
image_preproc_fn = preprocessing_factory.get_preprocessing(preproc_func_name, is_training=False)
image_preproc = image_preproc_fn(image, self.image_size, self.image_size)
# Read a batch of preprocessing images from queue
image_batch = tf.train.batch(
[image_preproc, image_filename], batch_size, num_threads=num_threads,
allow_smaller_final_batch=True)
return image_batch
feature_extractor.py 文件源码
python
阅读 33
收藏 0
点赞 0
评论 0
评论列表
文章目录