PythonMania

普段はロボットとAIを組み合わせて色々作ってます。Python関係以外も色々投稿していくと思います。

【Python】画像認識 - データセットの読み込み方 追記 【DeepLearning】


Zipファイルの中にさらにフォルダが配置されており、その中に画像データが


配置されている場合の読み込み方について


ex.../input/train.zip/train/〇〇〇.jp 



こちらのコンペを参考にしています

www.kaggle.com


以下コードです

#必要なライブラリのインポート
import numpy as np # linear algebra
import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)
from pathlib import Path
from fastai import *
from fastai.vision import *
import torch


#ファイルディレクトリの指定
data_folder = Path("../input")
train_df = pd.read_csv("../input/train.csv")
test_df = pd.read_csv("../input/sample_submission.csv")



#学習用データの読み込み
train_img = (ImageList.from_df(train_df,path=data_folder/"train",folder="train")
            .split_by_rand_pct(0.01)
            .label_from_df()
            .add_test(test_img)
            .transform(trfm,size=128)
            .databunch(path=".",bs=64,device=torch.device('cuda:0'))
             .normalize(imagenet_stats))


#モデル構築
learn = cnn_learner(train_img, models.densenet161, metrics=[error_rate, accuracy])

#学習の実行
lr = 3e-02
learn.fit_one_cycle(5, slice(lr))



preds,_ = learn.get_preds(ds_type=DatasetType.Test)
test_df.has_cactus = preds.numpy()[:, 0]
test_df.to_csv('submission.csv', index=False)