Когда я запускаю приведенную ниже программу, она выдает ошибку. Кажется, проблема в функции потерь, но я не могу ее найти. Я прочитал документацию Pytorch для nn.CrossEntropyLoss, но до сих пор не могу найти проблему.
Размер изображения (1 x 256 x 256),
Размер пакета — 1.
import torch
import torch.nn as nn
from PIL import Image
import numpy as np
torch.manual_seed(0)
x = np.array(Image.open("cat.jpg"))
x = np.expand_dims(x, axis = 0)
x = np.expand_dims(x, axis = 0)
x = torch.from_numpy(x)
x = x.type(torch.FloatTensor) # shape = (1, 1, 256, 256)
def Conv(in_channels, out_channels, kernel=3, stride=1, padding=0):
return nn.Conv2d(in_channels, out_channels, kernel, stride, padding)
class model(nn.Module):
def __init__(self):
super(model, self).__init__()
self.sequential = nn.Sequential(
Conv(1, 3),
Conv(3, 5),
nn.Flatten(),
nn.Linear(317520, 1),
nn.Sigmoid()
)
def forward(self, x):
y = self.sequential(x)
return y
def compute_loss(y_hat, y):
return nn.CrossEntropyLoss()(y_hat, y)
model = model()
y_hat = model(x)
loss = compute_loss(y_hat, torch.tensor([1]))
Ошибка:
Traceback (most recent call last):
File "D:/Me/AI/Models/test.py", line 38, in
loss = compute_loss(y, torch.tensor([1]))
File "D:/Me/AI/Models/test.py", line 33, in compute_loss
return nn.CrossEntropyLoss()(y_hat, y)
File "D:\Softwares\Anaconda\envs\deeplearning\lib\site-packages\torch\nn\modules\module.py", line 1054, in _call_impl
return forward_call(*input, **kwargs)
File "D:\Softwares\Anaconda\envs\deeplearning\lib\site-packages\torch\nn\modules\loss.py", line 1120, in forward
return F.cross_entropy(input, target, weight=self.weight,
File "D:\Softwares\Anaconda\envs\deeplearning\lib\site-packages\torch\nn\functional.py", line 2824, in cross_entropy
return torch._C._nn.cross_entropy_loss(input, target, weight, _Reduction.get_enum(reduction), ignore_index)
IndexError: Target 1 is out of bounds.
Process finished with exit code 1
Подробнее здесь: https://stackoverflow.com/questions/678 ... ntropyloss
«IndexError: Цель 1 выходит за пределы» от CrossEntropyLoss ⇐ Python
Программы на Python
-
Anonymous
1765873182
Anonymous
Когда я запускаю приведенную ниже программу, она выдает ошибку. Кажется, проблема в функции потерь, но я не могу ее найти. Я прочитал документацию Pytorch для nn.CrossEntropyLoss, но до сих пор не могу найти проблему.
Размер изображения (1 x 256 x 256),
Размер пакета — 1.
import torch
import torch.nn as nn
from PIL import Image
import numpy as np
torch.manual_seed(0)
x = np.array(Image.open("cat.jpg"))
x = np.expand_dims(x, axis = 0)
x = np.expand_dims(x, axis = 0)
x = torch.from_numpy(x)
x = x.type(torch.FloatTensor) # shape = (1, 1, 256, 256)
def Conv(in_channels, out_channels, kernel=3, stride=1, padding=0):
return nn.Conv2d(in_channels, out_channels, kernel, stride, padding)
class model(nn.Module):
def __init__(self):
super(model, self).__init__()
self.sequential = nn.Sequential(
Conv(1, 3),
Conv(3, 5),
nn.Flatten(),
nn.Linear(317520, 1),
nn.Sigmoid()
)
def forward(self, x):
y = self.sequential(x)
return y
def compute_loss(y_hat, y):
return nn.CrossEntropyLoss()(y_hat, y)
model = model()
y_hat = model(x)
loss = compute_loss(y_hat, torch.tensor([1]))
Ошибка:
Traceback (most recent call last):
File "D:/Me/AI/Models/test.py", line 38, in
loss = compute_loss(y, torch.tensor([1]))
File "D:/Me/AI/Models/test.py", line 33, in compute_loss
return nn.CrossEntropyLoss()(y_hat, y)
File "D:\Softwares\Anaconda\envs\deeplearning\lib\site-packages\torch\nn\modules\module.py", line 1054, in _call_impl
return forward_call(*input, **kwargs)
File "D:\Softwares\Anaconda\envs\deeplearning\lib\site-packages\torch\nn\modules\loss.py", line 1120, in forward
return F.cross_entropy(input, target, weight=self.weight,
File "D:\Softwares\Anaconda\envs\deeplearning\lib\site-packages\torch\nn\functional.py", line 2824, in cross_entropy
return torch._C._nn.cross_entropy_loss(input, target, weight, _Reduction.get_enum(reduction), ignore_index)
IndexError: Target 1 is out of bounds.
Process finished with exit code 1
Подробнее здесь: [url]https://stackoverflow.com/questions/67845882/indexerror-target-1-is-out-of-bounds-from-crossentropyloss[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия