Up 画像リストの CSVファイルの読み込み 作成: 2021-04-27
更新: 2021-04-27


    画像ファイル
      image0.jpg (5x3 画素)
      image1.jpg (3x5 画素)
      image2.jpg (4x3 画素)
    を,つぎのように配置する:
        (パス)
         ├ category0
         │   └ image0.jpg
         └ category1
             ├ image1.jpg
             └ image2.jpg

    画像リストの CSVファイル all_image_paths.csv を作成する:
      レコードの項目を,つぎの2つとする:
        (1) 画像ファイルのパス
        (2) ラベル (正解となるカテゴリー)
      そこで all_image_paths.csv は,つぎの3行:
        (パス)/category0/image0.jpg,0[改行コード(LF)]
        (パス)/category1/image1.jpg,1[改行コード(LF)]
        (パス)/category1/image2.jpg,1[改行コード(LF)]


    python インタラクティブ・シェルで作業する。
      $ source [パス]/venv/bin/activate (venv) $ python >>> import tensorflow as tf >>> tf.enable_eager_execution() >>> csv_name = '(パス)/all_image_paths.csv' >>> csvfile = open(csv_name, 'r') >>> import csv >>> reader = csv.reader(csvfile, delimiter=',') >>> for row in reader: ... image_path = row[0] ... image_r = tf.read_file(image_path) ... image = tf.image.decode_jpeg(image_r, channels=3) ... label = int(row[1]) ... image ... label ... <tf.Tensor: shape=(3, 5, 3), dtype=uint8, numpy= array([[[ 79, 72, 64], [145, 145, 133], [135, 140, 136], [115, 120, 114], [102, 107, 101]], [[ 74, 71, 54], [117, 112, 82], [130, 119, 73], [111, 90, 59], [ 89, 68, 37]], [[ 66, 59, 31], [114, 90, 54], [133, 103, 51], [116, 93, 51], [ 94, 71, 29]]], dtype=uint8)> 0 <tf.Tensor: shape=(5, 3, 3), dtype=uint8, numpy= array([[[187, 197, 222], [176, 181, 200], [174, 184, 186]], [[139, 165, 202], [135, 146, 166], [108, 111, 126]], [[120, 155, 195], [122, 136, 173], [115, 116, 120]], [[136, 163, 208], [146, 166, 193], [132, 130, 133]], [[155, 182, 227], [165, 185, 212], [152, 150, 153]]], dtype=uint8)> 1 <tf.Tensor: shape=(3, 4, 3), dtype=uint8, numpy= array([[[120, 93, 46], [133, 100, 57], [114, 91, 50], [ 66, 59, 31]], [[106, 89, 59], [132, 120, 80], [117, 109, 86], [ 74, 72, 51]], [[116, 121, 115], [137, 138, 132], [147, 146, 128], [ 80, 73, 67]]], dtype=uint8)> 1 >>>