CV・NLPハマりどころメモ

画像認識と自然言語処理を研究する中でうまくいかなかったことと、その対策をまとめる自分用メモが中心。

フォルダ内のファイルを特定の割合に分ける[Python]

なんでこんなことするの?

CNNで学習するために、画像ファイルをTrainingとValidationに分けたかったから。

画像ファイルを7:3に分けるスクリプト
from glob import glob
from os.path import join
import random

img_src = "/home/img/"

# 指定パスのPNG画像ファイルのリストを取得
files = glob(join(img_src, "*.png"))

# ファイルの総数を取得
num_files = len(files)

# ファイルのリストを7:3に分ける
files30 = random.sample(files, int(num_files*0.3))
files70 = random.sample(files, num_files - int(num_files*0.3))
ポイント
  • random.sample(リストからランダムでn個の要素を取り出す関数)を使ったこと。
  • ファイルの抜けが無いように、(num_file*n) : (1 - numfile*n) の割合で分けたこと。