keon / 3-min-pytorch Goto Github PK
View Code? Open in Web Editor NEW<펭귄브로의 3분 딥러닝, 파이토치맛> 예제 코드
Home Page: https://book.naver.com/bookdb/book_detail.nhn?bid=15559613
License: MIT License
<펭귄브로의 3분 딥러닝, 파이토치맛> 예제 코드
Home Page: https://book.naver.com/bookdb/book_detail.nhn?bid=15559613
License: MIT License
p164 코드 관련 문의 입니다.
forward 함수의 return 값이 F.log_softmax(x, dim=1) 입니다.
그런데 loss를 구할 때 F.cross_entropy 함수를 사용하고 있습니다.
이 함수는 내부적으로 log_softmax를 호출하는데
이렇게 되면 모델의 output 값에 log_softmax를 두번 적용하게 되는 것 같아서요.
forward 함수의 return 값을 그냥 x로 두는게 맞지 않을까 해서 문의 드립니다.
BasicBlock에서 첫번째 conv에만 인자로 받은 stride를 적용하고 두번째 conv는 stride = 1을 적용해야할 것 같아요. stride = 2를 두번 거쳐 w, h 가 /4이 되어 나오네용. 그래서 projection shortcut의 결과랑 dimension이 맞질 않습니다.
지나가다가 우연히 봤어요. 오류가 있는거같아서, 혹시나 제 생각이 맞으면 수정하시면
좋을것 같습니다.
4번 챕터에 03-overfitting-and-regularization.py 및 주피터 파일에서
def train(model, train_loader, optimizer):
model.train()
for data, target in enumerate(train_loader):
data, target = data.to(DEVICE), target.to(DEVICE)
optimizer.zero_grad()
output = model(data)
loss = F.cross_entropy(output, target)
loss.backward()
optimizer.step()
3번째 줄 에러인것 같습니다. enumerate 에서 인덱스가 data로 들어가는거 같네요
for batch_index, (data, target) in enumerate(train_loader): 이 맞는것 같습니다
/05-이미지_처리능력이_탁월한_CNN/cnn.ipynb 이부분에서
11번째에 model = CNN().to(DEVICE)책 앞에는 이렇게 써있는데 왜 깃과 전체 예제에는 model = Net().to(DEIVCE)로 적혀 있는건가요?
책에서는 CNN 모델의 인스턴스와 최적화 함수를 만듭니다. 라고써있는데 오류가 떠버리는데 어떻게 된건가요? 그리고 전체 예제랑 데이터 불러오는 구간도 다릅니다 .
4.3장의 실험과 비교한 것 같은데 4.3장은 FashionMNIST 데이터셋이고 4.4장은 MNIST 데이터셋을 사용했네요.
오류가 아닌가 싶습니다.
pip3 install torch==1.3.1+cpu torchvision==0.4.2+cpu -f https://download.pytorch.org/whl/torch_stable.html
Looking in links: https://download.pytorch.org/whl/torch_stable.html
ERROR: Could not find a version that satisfies the requirement torch==1.3.1+cpu (from versions: 0.1.2, 0.1.2.post1, 0.1.2.post2)
ERROR: No matching distribution found for torch==1.3.1+cpu
안녕하세요. 책 재미있게 읽고, 실습을 위해 설치하려는데, 계속 설치가 안되네요. 처음에는 파이썬 3.8 이어서 안되나 하고 3.7.3 으로 책에 나온것과 같은 버전으로 받아서 재설치 했습니다. 저 위에 숫자도 1.3.0 과 0.4.1 모두 넣어서 해보았으나 계속해서 에러가 발생합니다. 어떻게 설치해야 하나요?
현재 운영체제는 윈도우 10 64 비트 입니다. 감사합니다.
5.2장 설명은 FashionMNIST로 되어있으나 코드와 실험 결과는 MNIST를 사용했네요.
안녕하세요? 해당 도서로 공부하고 있는 대학원생입니다.
다름이 아니고, 4, 5장 예제로 FashionMNIST를 사용하고 계신데, torchvision의 transforms를 이용하시는 과정에서 사용된
transforms.Normalize((0.1307,), (0.3081,))은 어떻게 결정한 것인지 궁금합니다.
이것도 모델을 완성하는 사람의 노하우를 통해서 결정하는 것인가요?
`transform = transforms.Compose([
transforms.ToTensor()
])
dataset = torchvision.datasets.FashionMNIST(root = './.data', train = True,
download = True, transform = transform)
FashionMNIST_mean = dataset.data.numpy().mean(axis = (0, 1, 2))
print(FashionMNIST_mean / 255)
FashionMNIST_std = dataset.data.numpy().std(axis = (0, 1, 2))
print(FashionMNIST_std / 255)
`
다음과 같은 코드를 통해 실제 FashionMNIST dataset 6만건에 대한 mean 값과 std 값을 구해보았는데,
mean의 경우 0.2860, std의 경우 0.3530 정도가 나와서요... 원래 이 값을 통해서 작업을 해야 하는게 아닌가요..???
저도 지금 처음 공부하는 입장이라 자세히 알지 못해서 이렇게 여쭈어봅니다.
혹여나 자세히 아시는 다른분이 계시다면 알려주시면 감사하겠습니다 ㅠㅠ
test_loss_before = criterion(torch.squeeze(model(x_test)), y_test)
를 다음과 같이 바꿔 줘야 합니다.
test_loss = criterion(model(x_test).squeeze(), y_test)
베타 리더들의 피드백 중 하나였던 이슈입니다. 전체 코드에는 이미 수정이 이미 되있습니다.
def train(autoencoder,train_loader,"optimizer")
train 함수에서 'optimizer'가 인수로 빠져있는 것 같습니다.
바쁘셔서 더뎌지고 계시다는데 조금이나마 도움이 되시기를 바랍니다.
새해 복 많이 받으세요
https://github.com/keon/3-min-pytorch/blob/master/06-Autoencoder/01-basic-autoencoder.ipynb
안녕하세요 책을 잘 읽고있는 독자입니다!
코드에서 이상한 부분을 발견해서 이슈 올립니다.
책에서는 학습데이터 늘리기와 드롭아웃을 하기 전에는 데이터셋을 FashionMNIST를 사용하였고, 단순 fc layer만 가지고 Accuracy 86%가 나옵니다. 그리고 4.4장에서 학습데이터 늘리기와 드롭아웃을 적용하고 EPOCH을 50으로 늘려서 정확도를 Accuracy 97%까지 올린다고 서술하셨는데요, 코드에서는 데이터셋이 FashionMNIST에서 MNIST로 바뀌었습니다.
실제로 FashionMNIST로 데이터셋을 수정하였을때는 2%정도만 근소하게 올라가네요.
86% -> 97%의 성능 향상이 마치 data augmentation과 dropout만으로 이뤄진것처럼 오해하기 쉬울것 같습니다!
좋은 책 써주셔서 감사합니다
3-min-pytorch/06-사람의_지도_없이_학습하는_오토인코더/denoising_autoencoder.ipynb 파일에서 아래의 부분이 잘 못 된 것 같습니다. 이렇게 된 경우 y 값에도 노이즈가 더해져서 x, y 가 동일해집니다. input 에만 noise가 있어야 되지 않나요?
x = add_noise(x) # 입력에 노이즈 더하기
x = x.view(-1, 28*28).to(DEVICE)
y = x.view(-1, 28*28).to(DEVICE)
96 페이지의 코드블락을 수정해야 합니다.
현재:
model.eval()
test_loss_before = criterion(torch.squeeze(model(x_test)), y_test)
print('After Training, test loss is {}'.format(test_loss.item()))
수정:
model.eval()
test_loss = criterion(torch.squeeze(model(x_test)), y_test)
print('After Training, test loss is {}'.format(test_loss.item()))
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.