问题描述
我通常使用keras,但我使用的是tensorflow-compression,它是用tensorflow 1.15编写的。该代码着重于图像压缩,因此仅将图像作为输入。但是,我想修改输入数据管道以接受图像和它们对应的一键编码类标签,以尝试对其方法进行修改。这是当前代码:
# Create input data pipeline.
with tf.device("/cpu:0"):
train_files = glob.glob(args.train_glob)
if not train_files:
raise RuntimeError(
"No training images found with glob '{}'.".format(args.train_glob))
train_dataset = tf.data.Dataset.from_tensor_slices(train_files)
train_dataset = train_dataset.shuffle(buffer_size=len(train_files)).repeat()
train_dataset = train_dataset.map(
read_png,num_parallel_calls=args.preprocess_threads)
train_dataset = train_dataset.map(
lambda x: tf.random_crop(x,(args.patchsize,args.patchsize,3)))
train_dataset = train_dataset.batch(args.batchsize)
train_dataset = train_dataset.prefetch(32)
# Get training patch from dataset.
x = train_dataset.make_one_shot_iterator().get_next()
这是我对如何进行更改以也接受标签作为输入的想法,尽管我对tensorflow尤其是输入数据管道还不够熟悉,无法知道这是否正确。图片和标签需要正确配对,因此处理图片是否可能首先弄乱了顺序?
# Create input data pipeline.
with tf.device("/cpu:0"):
train_files = glob.glob(args.train_glob)
if not train_files:
raise RuntimeError(
"No training images found with glob '{}'.".format(args.train_glob))
# process images first and then add label
image_dataset = tf.data.Dataset.from_tensor_slices(train_files)
image_dataset = image_dataset.map(
read_png,num_parallel_calls=args.preprocess_threads)
image_dataset = image_dataset.map(
lambda x: tf.random_crop(x,3)))
# assume labels have been loaded and one hot encoded
label_dataset = tf.data.Dataset.from_tensor_slices(labels)
train_dataset = tf.data.Dataset.zip((image_dataset,label_dataset))
train_dataset = train_dataset.shuffle(buffer_size=len(train_files)).repeat()
train_dataset = train_dataset.batch(args.batchsize)
train_dataset = train_dataset.prefetch(32)
# Get training patch from dataset.
x,y = train_dataset.make_one_shot_iterator().get_next()
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)