我一直在尝试使用我的预训练模型来预测从未见过的图像上的标签。我已经训练了一个 CNN 来使用 Kaggle 花卉识别数据集对 5 种类型的花卉进行分类。到目前为止,我已经将我的模型训练到 97% 的准确率并将模型保存到一个目录中。我现在想从这些类型中下载任何一朵花的图像,并能够使用这个预训练模型来预测标签。到目前为止,这是我的代码:(所有这些的代码审查将非常有帮助,因为这是我的第一个项目)
这是我训练的 CNN 模型:
from multiprocessing import freeze_support
import torch
from torch import nn
from torch.autograd import Variable
from torch.utils.data import DataLoader, Sampler
from torchvision import datasets
from torchvision.transforms import transforms
from torch.optim import Adam
import matplotlib.pyplot as plt
import numpy as np
# Hyperparameters.
num_epochs = 20
num_classes = 5
batch_size = 100
learning_rate = 0.001
num_of_workers = 5
DATA_PATH_TRAIN = 'C:\\Users\Aeryes\PycharmProjects\simplecnn\images\\train\\'
DATA_PATH_TEST = 'C:\\Users\Aeryes\PycharmProjects\simplecnn\images\\test\\'
MODEL_STORE_PATH = 'C:\\Users\Aeryes\PycharmProjects\simplecnn\model'
trans = transforms.Compose([ …
Run Code Online (Sandbox Code Playgroud) 我在互联网上搜索了数小时,以找到解决我问题的好方法。以下是一些相关的背景信息,可帮助您回答我的问题。
这是我的第一个深度学习项目,我不知道自己在做什么。我知道理论但不了解实际要素。
我正在使用的数据可以在以下链接的kaggle上找到:(https://www.kaggle.com/alxmamaev/flowers-recognition)
我的目标是使用CNN根据数据集中提供的图像对花朵进行分类。
到目前为止,这是我尝试用来加载数据的一些示例代码,这是我的最佳尝试,但是正如我提到的那样,我一无所知,Pytorch文档并没有提供我可以理解的很多帮助。(https://pastebin.com/fNLVW1UW)
# Loads the images for use with the CNN.
def load_images(image_size=32, batch_size=64, root="../images"):
transform = transforms.Compose([
transforms.Resize(32),
transforms.ToTensor(),
transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))])
train_set = datasets.ImageFolder(root=root, train=True, transform=transform)
train_loader = torch.utils.data.DataLoader(train_set, batch_size=batch_size, shuffle=True, num_workers=2)
return train_loader
# Defining variables for use with the CNN.
classes = ('daisy', 'dandelion', 'rose', 'sunflower', 'tulip')
train_loader_data = load_images()
# Training samples.
n_training_samples = 3394
train_sampler = SubsetRandomSampler(np.arange(n_training_samples, dtype=np.int64))
# Validation samples.
n_val_samples = 424 …
Run Code Online (Sandbox Code Playgroud) 我是Pytorch的新手。在开始使用CNN进行训练之前,我一直在尝试学习如何查看输入的图像。我很难将图像更改为可与matplotlib一起使用的形式。
到目前为止,我已经尝试过了:
from multiprocessing import freeze_support
import torch
from torch import nn
import torchvision
from torch.autograd import Variable
from torch.utils.data import DataLoader, Sampler
from torchvision import datasets
from torchvision.transforms import transforms
from torch.optim import Adam
import matplotlib.pyplot as plt
import numpy as np
import PIL
num_classes = 5
batch_size = 100
num_of_workers = 5
DATA_PATH_TRAIN = 'C:\\Users\Aeryes\PycharmProjects\simplecnn\images\\train'
DATA_PATH_TEST = 'C:\\Users\Aeryes\PycharmProjects\simplecnn\images\\test'
trans = transforms.Compose([
transforms.RandomHorizontalFlip(),
transforms.Resize(32),
transforms.CenterCrop(32),
transforms.ToPImage(),
transforms.Normalize((0.5, 0.5, 0.5),(0.5, 0.5, 0.5))
])
train_dataset = datasets.ImageFolder(root=DATA_PATH_TRAIN, transform=trans)
train_loader = DataLoader(dataset=train_dataset, …
Run Code Online (Sandbox Code Playgroud)