Ошибка глубокого обучения Pytorch в imgs: TypeError: объект «модуль» не повторяетсяPython

Программы на Python
Ответить Пред. темаСлед. тема
Гость
 Ошибка глубокого обучения Pytorch в imgs: TypeError: объект «модуль» не повторяется

Сообщение Гость »


Я новичок в Python. Я хочу создать свой собственный набор обучающих изображений для глубокого обучения с помощью Python.
Однако при обучении набора данных произошла ошибка;
"Traceback (самый последний вызов — последний): Файл «D:\Desktop\dlimages\test Training set.py», строка 38, в для изображений — метки в Scene_dataloader: TypeError: объект «модуль» не повторяется» Это мой класс данных под названием Scene_ Dataloader.py:

импортировать глобус импортный фонарь из данных импорта torch.utils из изображения импорта PIL импортировать numpy как np из преобразований импорта torchvision импортировать matplotlib.pyplot как plt класс Mydataset(data.Dataset): def __init__(я, корень): self.imgs_path = корень def __getitem__(сам, индекс): img_path = self.imgs_path[индекс] защита __len__(сам): вернуть len(self.imgs_path) all_imgs_path = glob.glob(r"D:/Desktop/dlimages/scene_pic/*/*.jpg") #Путь к папке данных для var в all_imgs_path: печать (вар) Scene_dataset = Mydataset(all_imgs_path) print(len(scene_dataset)) # Возвращаем общее количество изображений в папке print(scene_dataset[12:14]) # Разрезаем, отображаем 12-е и 13-е изображения, python закрывается слева и открывается справа Scene_dataloader = torch.utils.data.DataLoader (набор_данных сцены, пакет_размер = 4) вид = ['эви', 'его'] виды_to_id = dict((c, i) для i, c в перечислении(виды)) печать (species_to_id) id_to_species = dict((v, k) для k, v в spec_to_id.items()) печать (id_to_species) все_метки = [] для img в all_imgs_path: для i, c в перечислении (виды): если c в img: all_labels.append(я) печать (все_метки) Transform = Transforms.Compose([ Transforms.Resize((256, 256)), # Первый шаг преобразования Transforms.ToTensor() # Второй шаг преобразования, функция: первый — преобразовать в тензор, второй — преобразовать диапазон значений изображения в диапазон от 0 до 1, третий — поместить канал впереди ]) класс Mydatasetpro(data.Dataset): def __init__(self, img_paths, labels, Transform): self.imgs = пути_img self.labels = метки self.transforms = трансформировать def __getitem__(сам, индекс): img = self.imgs[индекс] метка = self.labels[индекс] pil_img = Image.open(img) # pip install подушка pil_img = pil_img.convert('RGB') данные = self.transforms(pil_img) возвращаемые данные, метка защита __len__(сам): вернуть len(self.imgs) BATCH_SIZE = 4 Scene_dataset = Mydatasetpro (all_imgs_path, all_labels, Transform) Scene_dataloader = data.DataLoader( набор_сцены_данных, пакет_размер = BATCH_SIZE, перемешивание = Истина ) imgs_batch, labels_batch = next(iter(scene_dataloader)) печать(imgs_batch.shape) plt.figure(figsize=(12, 8)) for i, (img, label) в enumerate(zip(imgs_batch[:6], labels_batch[:6])): img = img.permute(1, 2, 0).numpy() plt.subplot(2, 3, я + 1) plt.title(id_to_species.get(label.item())) plt.imshow(изображение) plt.show() # Отображение изображений index = np.random.permutation(len(all_imgs_path)) all_imgs_path = np.array(all_imgs_path)[индекс] all_labels = np.array(all_labels)[индекс] s = int(len(all_imgs_path) * 0,8) печать(и) train_imgs = путь_все_imgs[:s] train_labels = all_labels[:s] test_imgs = all_imgs_path[s:] test_labels = all_labels[s:] train_ds = Mydatasetpro(train_imgs, train_labels, Transform) # TrainSet TensorData test_ds = Mydatasetpro(test_imgs, test_labels, Transform) # TestSet TensorData # печать(train_ds) # печать(test_ds) Распечатать("**********") train_dl = data.DataLoader(train_ds,atch_size=BATCH_SIZE, shuffle=True) # Метки TrainSet test_dl = data.DataLoader(train_ds,atch_size=BATCH_SIZE, shuffle=True) # Метки TestSet #print (train_dl) #print(test_dl) Затем я создал py-файл обучающего набора:

импортировать факел импортировать torchvision.models как модели из импорта фонарика nn из Оптима импорта факела из data_production импорт Scene_dataloader из data_production.scene_dataloader импортируйте train_dl, test_dl УСТРОЙСТВО = torch.device("cuda" если torch.cuda.is_available() иначе «процессор») model_ft = models.resnet50(weights='ResNet50_Weights.DEFAULT') in_features = model_ft.fc.in_features model_ft.fc = nn.Sequential(nn.Linear(in_features, 256), nn.ReLU(), # nn.Dropout(0, 4), nn.Линейный(256, 4), nn.LogSoftmax(dim=1)) model_ft = model_ft.to(DEVICE) # 将模型迁移到gpu loss_fn = nn.CrossEntropyLoss() loss_fn = loss_fn.to(DEVICE) # 将loss_fn迁移到GPU оптимизатор = optim.Adam(model_ft.fc.parameters(), lr=0.003) эпох = 50 # 迭代次数 шаги = 0 бег_потеря = 0 print_every = 10 train_losses, test_losses = [], [] для эпохи в диапазоне(эпох): model_ft.train() для изображений — метки в Scene_dataloader: шагов += 1 labels = torch.tensor(labels, dtype=torch.long) imgs, labels = imgs.to(УСТРОЙСТВО), labels.to(УСТРОЙСТВО) оптимизатор.zero_grad() # Оптимизация выходные данные = model_ft(imgs) потеря = loss_fn(выходы, метки) loss.backward() # Справочная информация оптимизатор.step() # Завершение Running_loss += loss.item() если шаги % print_every == 0: test_loss = 0 точность = 0 model_ft.eval() с torch.no_grad(): для изображений — метки в test_dl: labels = torch.tensor(labels, dtype=torch.long) imgs, labels = imgs.to(УСТРОЙСТВО), labels.to(УСТРОЙСТВО) выходные данные = model_ft(imgs) потеря = loss_fn(выходы, метки) test_loss += loss.item() ps = torch.exp(выходы) top_p, top_class = ps.topk(1, dim=1) равно = top_class == labels.view(*top_class.shape) точность += torch.mean(equals.type(torch.FloatTensor)).item() train_losses.append(running_loss / len(train_dl)) test_losses.append(test_loss / len(test_dl)) print(f"Эпоха {эпоха + 1}/{эпохи}.. " f"Потеря поезда: {running_loss / print_every:.3f}.." f"Потеря теста: {test_loss / len(test_dl):.3f}.." f"Точность теста: {accuracy / len(test_dl):.3f}") бег_потеря = 0 model_ft.train() torch.save(model_ft, "cjmodel.pth") В этой строке появляется ошибка:
для изображений, метки в Scene_dataloader:
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Проблема обучения модели глубокого обучения
    Anonymous » » в форуме Python
    0 Ответы
    60 Просмотры
    Последнее сообщение Anonymous
  • TypeError: объект «сопрограмма» не повторяется
    Anonymous » » в форуме Python
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Просмотр регистра ошибок для модели в model_or_iterable: TypeError: объект 'type' не повторяется
    Anonymous » » в форуме Python
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • TypeError: объект «NoneType» не повторяется при использовании вызова
    Anonymous » » в форуме Python
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • TypeError: объект «NoneType» не повторяется при использовании вызова
    Anonymous » » в форуме Python
    0 Ответы
    34 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»