第5週フェーズレビュー


timm提供モデル中cspdarknet53vit_large_patch16_384vit_small_patch16_224
上記3つのモデルの性能をテストした.cspdarknet53この場合、acc 0.8以上f 1 score 0.7以上の性能であったが、いずれの場合も結果は低かった.これは,入力データの前処理ではなくモデル自体の問題による可能性があり,単純なサイズ調整ではモデルをうまく利用できない.
pltを使用してdataloaderの画像を表示します.
import torch
import torchvision
import torchvision.transforms as transforms
import matplotlib.pyplot as plt
import numpy as np

transform_train = transforms.Compose([
    transforms.ToTensor(),
])

train_dataset = torchvision.datasets.CIFAR10(root='./data', train=True, download=True, transform=transform_train)
train_loader = torch.utils.data.DataLoader(train_dataset, batch_size=128, shuffle=True, num_workers=4)
こうして読み込まれた画像は実際にTensorオブジェクトとして存在し,各要素の値は0から1の間の値である.したがって、画面に出力する場合は、0~255の間の値を再び増やす必要があるかどうかを知りたい場合があります.幸いなことに、Pythonのmatplotlibが基本的に0から1の値であっても、自動的に認識され、正常な画像に出力されます.ただし、OpenCVなどのアプリケーションで単独で使用する場合は、追加の前処理が必要になる場合があります.
また、PyTorchは、基本的に[Batch Size,Channel,Width,Height]順に画像データセットを記憶するため、Matplotlibに出力するためには、各画像を[Width,Height,Channel]に変更する必要がある.numpyライブラリの回転座()関数を使用して解決できます.
def custom_imshow(img):
    img = img.numpy()
    plt.imshow(np.transpose(img, (1, 2, 0)))
    plt.show()


def process():
    for batch_idx, (inputs, targets) in enumerate(train_loader):
        custom_imshow(inputs[0])
出典:https://ndb796.tistory.com/372[眼鏡職人開発者]
詳細コードは以下の通り、詳細は出典を明記してください

個人回顧録


Pstageをしていると物足りなさを感じましたこれまでレッスンを受けていましたが、理解が正しいかどうかは疑問ですが、プロジェクトが進むにつれて、実際の応用の違いを感じました.全体的に、ドメインの知識が足りないので、モデルを盲目的に叩いているような気がしますが、概念をさらに理解し分析できれば、もっと良い成績が取れるはずです.この段階はいい感じで、次の段階はどうやって始めるのでしょうか?でも今の状態で進めば結果的に大きな差はないはずなので心配です.次のUstageコースだけでなく、以前のコースを再確認する必要があります.