

画像が１００枚入っているフォルダから５０枚ずつ読み込み、numpy配列に変換してnpyファイルを保存する処理を２回するコードを書いています。  
コード実行後、npyファイルはちゃんと２つ保存されていたのですが、中身を見るとそれぞれ１００枚ずつ保存されているようでした。  
rn.sampleでフォルダ内からランダムに５０枚選択するようにしていたのですが、書き方が間違っているでしょうか。  
お忙しいところ恐れ入りますが修正方法についてアドバイスをいただけますと幸いです。

※teratailでも質問中です。そちらでご回答がなかったため、こちらにも投稿させて頂きました。どちらかでご回答を頂き次第、共有をさせていただきます。

[code]

    import random as rn 
    
    img_size = (1000, 500)
    dir_name ='./train'
    file_type = 'jpeg'
    
    img_list = glob.glob('./' + dir_name + '/*.' + file_type)
    
    for i in range(2): 
      train_img_array_list = []
      rn.sample(img_list, 50) #iが1増加するたび、ランダムに選択した５０枚の画像を読み込み
      for img in img_list:
        train_img = load_img(img,grayscale=True,target_size=(img_size)) 
        train_img_array = img_to_array(train_img) /255
        train_img_array_list.append(train_img_array)
    
      train_img_array_list = np.array(train_img_array_list)
      file_name = os.path.join('.', 'image'+'{0:04d}'.format(i)+'.npy')#連番でnpyファイルを保存
      np.save(file_name, train_img_array_list)
    
[/code]


CC BY-SA 4.0
2019-04-30T04:06:40.020
54595
2019-06-15T02:02:55.353
2019-04-30T12:20:36.320
32840
32840
question
python python3
Python3 フォルダ内から画像をランダムに５０枚選択したい


rn.sampleの動きがわからないので、たぶん、みなさん、回答できない気が。

その上で、以下は参考になりますか？

[code]

    train_size = x_train.shape[0]
    batch_size = 10 #ランダムに10個
    batch_mask = np.random.choice(train_size, batch_size)
    x_batch = x_train[batch_mask]
    t_batch = t_train[batch_mask]
    
[/code]

出典：  
「ゼロから作るDeep Learning -- Pythonで学ぶディープラーニングの理論と実装」  
（2017年7月28日 初版第10刷発行, 発行所 株式会社オライリー・ジャパン）


CC BY-SA 4.0
2019-04-30T05:34:11.230
54597
2019-05-10T17:23:33.390
2019-05-10T17:23:33.390
3060
31548
54595
answer


teratailの方でアドバイスをいただき、以下の通り修正したところうまくいきました(img_list = rn.sample(img_list,
50)としました）。質問の際、import random as
rnとしてモジュールをインポート済みであることを記載しておらず、混乱させてしまい大変申し訳ありませんでした。貴重なお時間を割いてご確認やご提案をくださった皆様、ありがとうございました。

[code]

    import random as rn
    
    img_size = (1000,500)
    dir_name ='./train' 
    file_type = 'jpeg'
    
    img_list = glob.glob('./' + dir_name + '/*.' + file_type)
    
    for i in range(2): 
        train_img_array_list = []
        img_list = rn.sample(img_list, 50) #iが1増加するたび、ランダムに選択した５０枚の画像を読み込み
        for img in img_list:
          train_img = load_img(img,grayscale=True,target_size=(img_size)) 
          train_img_array = img_to_array(train_img) /255
          train_img_array_list.append(train_img_array)
    
        train_img_array_list = np.array(train_img_array_list)
        file_name = os.path.join('.', 'image'+'{0:04d}'.format(i)+'.npy')
        np.save(file_name, train_img_array_list)
    
[/code]


CC BY-SA 4.0
2019-04-30T06:19:38.887
54598
2019-04-30T06:19:38.887
32840
54595
answer