训练集与标签怎么弄

我在做用 CNN 做一个图像复原的工作,但是新手遇到的问题比较多。我在一篇论文中看到:“将 CNN 模型应用于模糊去除直观的方法是将模糊图像直接作为网络模型的输入以及对应的清晰图像作为标签”。那我是将模糊图像放在一个文件夹,清晰的放在另一个文件夹,然后 feed 进去么,求大佬指教。


提问人:bitxrj,发帖时间:2018-4-18 20:38:24

使用 numpy 多维数组作为输入数据,建议看下 TensorFlow 官方给出的 MNIST 例子:

https://tensorflow.google.cn/tutorials/layers#training_and_evaluating_the_cnn_mnist_classifie

def main (unused_argv):
  # Load training and eval data
  mnist = tf.contrib.learn.datasets.load_dataset ("mnist")
  train_data = mnist.train.images # Returns np.array
  train_labels = np.asarray (mnist.train.labels, dtype=np.int32)
  eval_data = mnist.test.images # Returns np.array
  eval_labels = np.asarray (mnist.test.labels, dtype=np.int32)

atomwh,发表于 2018-4-19 10:37:13

你的输入输出对 (x, y) 都是图像。

感觉你的意思是想读入并解析图像,可以使用 tf.data 的 API 如下:

def parse_images (filenames):
  x_string = tf.read_file (filenames [0])
  x_decoded = tf.image.decode_image (x_string)
  y_string = tf.read_file (filenames [1])
  y_decoded = tf.image.decode_image (y_string)
  return x_decoded, y_decoded

filenames = tf.constant ([
  ["1-input.jpg", "1-expected.jpg"],
  # And more ...
])
dataset = tf.data.Dataset.from_tensor_slices (filenames)
dataset = dataset.map (parse_images)
iterator = dataset.repeat ().batch (1).make_one_shot_iterator ()
next_element = iterator.get_next ()
with tf.Session () as sess:
  for i in range (100):
    print (sess.run (next_element))

要求有图像 1-input.jpg, 1-expected.jpg。由于使用的文件路径,所以各自存在什么目录都可以。


TianLin,发表于 2018-4-19 11:06:26

那么请问图像大小不一的情况该如何解决呢,就是我的清晰图像很多,而且大小都不一样。


bitxrj(提问者),2018-4-20 11:17

可以考虑 https://www.tensorflow.org/api_docs/python/tf/image/resize_bilinear 这个方法。


舟 3332,2018-4-20 17:57

用精灵标注助手试试。


wxyhv,发表于 2018-7-3 17:21:21