前提・実現したいこと
現在 pythonとkeras を使い ある書籍の内容にある、kaggle の 猫と犬の分類の問題をといていて下記のコードが出てきました。
しかし、下記コードの
generatorクラス関連のfor文において、for inputs_batch,labels_batch in generator: の意味がいまいちわかりません。。
generatorインスタンスの中に、inputs_batch, labels_batchがすでに含まれていることでしょうか?
そもそも、このようなfor文は慣れたないもので、意味がでできますようにアドバイスをいただければと思います。
for inputs_batch,labels_batch in generator: features_batch = conv_base.predict(inputs_batch) features[i * batch_size:( i + 1 )* batch_size] = features_batch labels[i * batch_size:(i + 1) * batch_size] = labels_batch i += 1 if i * batch_size >= sample_count: break
該当のソースコード
Python
1base_dir = "./cat_and_dogs_small" 2 3train_dir = os.path.join(base_dir,"train") 4validation_dir = os.path.join(base_dir,"validation") 5test_dir = os.path.join(base_dir,"test") 6 7datagen = ImageDataGenerator(rescale=1./255) 8batch_size=20 9 10 11def extract_features(directory,sample_count): 12 # 0の配列を作成する。 13 features = np.zeros(shape=(sample_count,4,4,512)) 14 labels = np.zeros(shape=(sample_count)) 15 generator = datagen.flow_from_directory(directory, 16 target_size=(150,150), 17 batch_size=batch_size, 18 class_mode="binary") 19 20 i = 0 21 for inputs_batch,labels_batch in generator: 22 23 features_batch = conv_base.predict(inputs_batch) 24 features[i * batch_size:( i + 1 )* batch_size] = features_batch 25 labels[i * batch_size:(i + 1) * batch_size] = labels_batch 26 i += 1 27 28 if i * batch_size >= sample_count: 29 break 30 31 return features,labels 32
Python
1train_features,train_labels = extract_features(train_dir,2000) 2validation_features,validation_labels = extract_features(validation_dir,1000) 3test_features,test_labels = extract_features(test_dir,1000)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/27 06:14