이 오류를 해결하는 방법, 티켓 분류 모델을 훈련 시키려고합니다.

나우 엘 루카

이 오류를 해결하는 방법, 티켓 분류 모델을 훈련 시키려고합니다.

Pytorch 라이브러리로 티켓 분류기를 만들려고하는데이 오류가 있습니다. 내가 뭘 잘못했는지 이해할 수 없어 도와 줄 수있어?


data_transforms = {
    'train' : transforms.Compose([
        transforms.RandomResizedCrop(224),
        transforms.RandomHorizontalFlip(),
        transforms.ToTensor(),
        transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
    ]),
    'val' : transforms.Compose([
        transforms.Resize(256),
        transforms.CenterCrop(224),
        transforms.ToTensor(),
        transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
    ])

}

data_dir = 'dataset_billete_argentino'
image_datasets = {x: datasets.ImageFolder(os.path.join(data_dir, x),
                                          data_transforms[x])
                  for x in ['train', 'val']}
dataloaders = {x: torch.utils.data.DataLoader(image_datasets[x], batch_size=4,
                                              shuffle=True, num_workers=4)
               for x in ['train', 'val']}
dataset_sizes = {x: len(image_datasets[x]) for x in ['train', 'val']}
class_name = image_datasets['train'].classes

class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        self.conv1 = nn.Conv2d(3,6,5)
        self.pool = nn.MaxPool2d(2,2)
        self.conv2 = nn.Conv2d(6,16,5)
        self.fc1 = nn.Linear(16 * 53 * 53, 120)
        self.fc2 = nn.Linear(120, 84)
        self.fc3 = nn.Linear(84, 2)

    def forward(self, x):
        x = self.pool(F.relu(self.conv1(x)))
        x = self.pool(F.relu(self.conv2(x)))
        x = x.view(x.size(0), 16* 53 * 53)
        x = F.relu(self.fc1(x))
        x = F.relu(self.fc2(x))
        x = self.fc3
        return x

net = Net()

def train_model(model, criterion, optimizer, scheduler, num_epochs=25):
    since = time.time()

    best_model_wts = copy.deepcopy(model.state_dict())
    best_acc = 0.0

    for epoch in range(num_epochs):
        print('Epoch {}/{}'.format(epoch, num_epochs - 1))
        print('-' * 10)

        # Each epoch has a training and validation phase
        for phase in ['train', 'val']:
            if phase == 'train':
                model.train()  # Set model to training mode
            else:
                model.eval()   # Set model to evaluate mode

            running_loss = 0.0
            running_corrects = 0

            # Iterate over data.
            for inputs, labels in dataloaders[phase]:
                inputs = inputs.to(device)
                labels = labels.to(device)

                # zero the parameter gradients
                optimizer.zero_grad()

                # forward
                # track history if only in train
                with torch.set_grad_enabled(phase == 'train'):
                    outputs = model(inputs)
                    _, preds = torch.max(outputs, 1)
                    loss = criterion(outputs, labels)

                    # backward + optimize only if in training phase
                    if phase == 'train':
                        loss.backward()
                        optimizer.step()

                # statistics
                running_loss += loss.item() * inputs.size(0)
                running_corrects += torch.sum(preds == labels.data)
            if phase == 'train':
                scheduler.step()

            epoch_loss = running_loss / dataset_sizes[phase]
            epoch_acc = running_corrects.double() / dataset_sizes[phase]

            print('{} Loss: {:.4f} Acc: {:.4f}'.format(
                phase, epoch_loss, epoch_acc))

            # deep copy the model
            if phase == 'val' and epoch_acc > best_acc:
                best_acc = epoch_acc
                best_model_wts = copy.deepcopy(model.state_dict())

        print()

    time_elapsed = time.time() - since
    print('Training complete in {:.0f}m {:.0f}s'.format(
        time_elapsed // 60, time_elapsed % 60))
    print('Best val Acc: {:4f}'.format(best_acc))

    # load best model weights
    model.load_state_dict(best_model_wts)
    return model

from torch.optim import lr_scheduler

exp_lr_scheduler = lr_scheduler.StepLR(optimizer, step_size=7, gamma=0.1)

net = train_model(net, criterion, optimizer, exp_lr_scheduler,
                  num_epochs=25)

그리고이 오류를 제공하십시오 TypeError : max () 잘못된 인수 조합을 받았습니다-got (Linear, int), 그러나 다음 중 하나를 예상했습니다. * (Tensor input) * (Tensor input, name dim, bool keepdim, tuple of Tensors out) * (텐서 입력, 텐서 기타, 텐서 출력) * (텐서 입력, int dim, bool keepdim, Tensor의 튜플 출력)

Epoch 0/24
----------
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-27-29dfe3459d8a> in <module>
      4 
      5 net = train_model(net, criterion, optimizer, exp_lr_scheduler,
----> 6                   num_epochs=25)

<ipython-input-19-1a5d4f162548> in train_model(model, criterion, optimizer, scheduler, num_epochs)
     31                 with torch.set_grad_enabled(phase == 'train'):
     32                     outputs = model(inputs)
---> 33                     _, preds = torch.max(outputs, 1)
     34                     loss = criterion(outputs, labels)
     35 

TypeError: max() received an invalid combination of arguments - got (Linear, int), but expected one of:
 * (Tensor input)
 * (Tensor input, name dim, bool keepdim, tuple of Tensors out)
 * (Tensor input, Tensor other, Tensor out)
 * (Tensor input, int dim, bool keepdim, tuple of Tensors out)
안드레 파 체코

오류 메시지에 따르면 문제는 다음 줄에 있습니다.

_, preds = torch.max(outputs, 1)

여기에는 두 가지 문제가 있습니다.

1) @Idodo가 말했듯이, 당신은 두 개의 인수를 제공하고 둘 다 텐서가 아닙니다. 메시지에 따르면 각각 a Linear및 a int입니다.

2)를 제거하면 가능하지 않은 inta의 최대 값을 계산하려고하기 때문에 여전히 오류 nn.Linear가 있습니다. 코드를 평가하면 두 번째 오류가 발생했습니다. 모델의 전달 방법에는 다음이 있습니다.

x = self.fc3

그게 바로 문제 야. 다음을 수행해야합니다.

x = self.fc3(x)

이제 모든 것이 잘 작동 할 것이라고 생각합니다!

문제가 해결되기를 바랍니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

CNN 모델을 훈련시키고이 CNN의 가중치를 저장 한 다음이 가중치를 사용하여 다른 훈련 데이터에 대해이 CNN을 재 훈련하는 방법이 있습니까?

분류에서Dev

Keras로 다중 클래스 이미지 분류기를 훈련하는 방법

분류에서Dev

CNTK 회귀 모델을 훈련시키기 위해 numpy 배열에서 데이터를 공급하는 방법

분류에서Dev

항목 시퀀스 분할을 위해 모델을 훈련하는 방법

분류에서Dev

이미지 분류를 위해 훈련 데이터를 준비하는 방법

분류에서Dev

Machine Learning의 이미지에서 배경 제거를 위해 모델을 훈련시키는 방법

분류에서Dev

분류를 위해 SVM을 훈련하는 데 사용하기 위해 PCA에서 얻은 훈련 계획에 레이블을 지정하는 방법은 무엇입니까? MATLAB

분류에서Dev

모델을 훈련하기 위해 pca의 행렬 결과를 사용하는 방법은 무엇입니까?

분류에서Dev

ktrain 텍스트 분류기와 함께 사전 훈련 된 다른 BERT 모델을 사용하는 방법은 무엇입니까?

분류에서Dev

sklearn에서 훈련 된 NB 분류기를 사용하여 이메일의 레이블을 예측하는 방법은 무엇입니까?

분류에서Dev

다양한 특성 차원을 가진 데이터 세트로 sklearn 분류기를 훈련하는 방법은 무엇입니까?

분류에서Dev

이 오류를 해결하는 방법 컨텍스트에서 유틸리티를 찾을 수 없습니다.

분류에서Dev

Dash를 사용하여 이미지 / 이미지를 처리하고 훈련되고 저장된 이미지 분류 모델을 통해 실행하고 대시 보드에 결과 표시

분류에서Dev

Yolov4를 사용하여 사전 훈련 된 모델을 훈련시키는 방법을 제안합니까?

분류에서Dev

Gensim에서 사전 훈련 된 모델을로드하고 doc2vec를 훈련시키는 방법은 무엇입니까?

분류에서Dev

Django에서 Keras 모델을 훈련시키는 방법 : 'gevent._local.local'개체 오류에 대한 약한 참조

분류에서Dev

훈련 된 모델을 keras로 가져 오는 방법은 무엇입니까?

분류에서Dev

이 오류가 발생합니다 : 모듈 './lib/async'Require stack :.이 오류를 해결하는 방법?

분류에서Dev

훈련 작업이 생성 된 후 새 데이터에 대해 Sagemaker 모델을 재 훈련하는 방법

분류에서Dev

하나의 옵티마이 저가 전체 매개 변수를 훈련시키고 다른 하나는 매개 변수의 일부를 훈련 시키도록 두 개의 옵티 마이저를 갖는 방법은 무엇입니까?

분류에서Dev

훈련 된 모델과 훈련되지 않은 모델을 병합하는 방법은 무엇입니까?

분류에서Dev

분류 신경망으로 나쁜 보상을 훈련하는 방법은 무엇입니까?

분류에서Dev

이미지 분류를 위해 inception / mobilenet 모델로 tfserving을 설정하는 방법은 무엇입니까?

분류에서Dev

분류기를 한 번만 훈련시키는 방식으로 NLTK Python 코드를 조정하는 방법

분류에서Dev

Gensim : 사전 훈련 된 doc2vec 모델을로드하는 동안 오류가 발생합니까?

분류에서Dev

다중 클래스 CNN 모델을 훈련하는 동안 5 천만 개의 25x25 numpy 배열로 구성된 훈련 데이터를 저장하고로드하는 방법은 무엇입니까?

분류에서Dev

다중 클래스 CNN 모델을 훈련하는 동안 5 천만 개의 25x25 numpy 배열로 구성된 훈련 데이터를 저장하고로드하는 방법은 무엇입니까?

분류에서Dev

데이터 프레임에서 다른 레이블로 공백 텍스트 분류를 훈련하는 방법은 무엇입니까?

분류에서Dev

하나의 이미지로 훈련 된 모델을 예측하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    CNN 모델을 훈련시키고이 CNN의 가중치를 저장 한 다음이 가중치를 사용하여 다른 훈련 데이터에 대해이 CNN을 재 훈련하는 방법이 있습니까?

  2. 2

    Keras로 다중 클래스 이미지 분류기를 훈련하는 방법

  3. 3

    CNTK 회귀 모델을 훈련시키기 위해 numpy 배열에서 데이터를 공급하는 방법

  4. 4

    항목 시퀀스 분할을 위해 모델을 훈련하는 방법

  5. 5

    이미지 분류를 위해 훈련 데이터를 준비하는 방법

  6. 6

    Machine Learning의 이미지에서 배경 제거를 위해 모델을 훈련시키는 방법

  7. 7

    분류를 위해 SVM을 훈련하는 데 사용하기 위해 PCA에서 얻은 훈련 계획에 레이블을 지정하는 방법은 무엇입니까? MATLAB

  8. 8

    모델을 훈련하기 위해 pca의 행렬 결과를 사용하는 방법은 무엇입니까?

  9. 9

    ktrain 텍스트 분류기와 함께 사전 훈련 된 다른 BERT 모델을 사용하는 방법은 무엇입니까?

  10. 10

    sklearn에서 훈련 된 NB 분류기를 사용하여 이메일의 레이블을 예측하는 방법은 무엇입니까?

  11. 11

    다양한 특성 차원을 가진 데이터 세트로 sklearn 분류기를 훈련하는 방법은 무엇입니까?

  12. 12

    이 오류를 해결하는 방법 컨텍스트에서 유틸리티를 찾을 수 없습니다.

  13. 13

    Dash를 사용하여 이미지 / 이미지를 처리하고 훈련되고 저장된 이미지 분류 모델을 통해 실행하고 대시 보드에 결과 표시

  14. 14

    Yolov4를 사용하여 사전 훈련 된 모델을 훈련시키는 방법을 제안합니까?

  15. 15

    Gensim에서 사전 훈련 된 모델을로드하고 doc2vec를 훈련시키는 방법은 무엇입니까?

  16. 16

    Django에서 Keras 모델을 훈련시키는 방법 : 'gevent._local.local'개체 오류에 대한 약한 참조

  17. 17

    훈련 된 모델을 keras로 가져 오는 방법은 무엇입니까?

  18. 18

    이 오류가 발생합니다 : 모듈 './lib/async'Require stack :.이 오류를 해결하는 방법?

  19. 19

    훈련 작업이 생성 된 후 새 데이터에 대해 Sagemaker 모델을 재 훈련하는 방법

  20. 20

    하나의 옵티마이 저가 전체 매개 변수를 훈련시키고 다른 하나는 매개 변수의 일부를 훈련 시키도록 두 개의 옵티 마이저를 갖는 방법은 무엇입니까?

  21. 21

    훈련 된 모델과 훈련되지 않은 모델을 병합하는 방법은 무엇입니까?

  22. 22

    분류 신경망으로 나쁜 보상을 훈련하는 방법은 무엇입니까?

  23. 23

    이미지 분류를 위해 inception / mobilenet 모델로 tfserving을 설정하는 방법은 무엇입니까?

  24. 24

    분류기를 한 번만 훈련시키는 방식으로 NLTK Python 코드를 조정하는 방법

  25. 25

    Gensim : 사전 훈련 된 doc2vec 모델을로드하는 동안 오류가 발생합니까?

  26. 26

    다중 클래스 CNN 모델을 훈련하는 동안 5 천만 개의 25x25 numpy 배열로 구성된 훈련 데이터를 저장하고로드하는 방법은 무엇입니까?

  27. 27

    다중 클래스 CNN 모델을 훈련하는 동안 5 천만 개의 25x25 numpy 배열로 구성된 훈련 데이터를 저장하고로드하는 방법은 무엇입니까?

  28. 28

    데이터 프레임에서 다른 레이블로 공백 텍스트 분류를 훈련하는 방법은 무엇입니까?

  29. 29

    하나의 이미지로 훈련 된 모델을 예측하는 방법은 무엇입니까?

뜨겁다태그

보관