Giter VIP home page Giter VIP logo

book-code's Introduction

版本

Github上的代码会不定期进行更新,将会逐渐支持以下软件版本

  • Python-3.6.8
  • PyTorch-1.0.1

猫狗数据集Kaggle下载地址:https://www.kaggle.com/c/dogs-vs-cats-redux-kernels-edition/data
猫狗数据集百度网盘下载地址:https://pan.baidu.com/s/1yKpDPRfFkYca6E1nZ-g1hg 提取码:qh1z

本书纠错

感谢xhy3054、Zehui-Lin发现书中的错误。

第1章

P2
原文:
...,人工智能历史上的第1股浪潮就这样顺理成章形成了,...
纠正:
...,人工智能历史上的第1股浪潮就这样顺理成章的形成了,...

第2章

P17
原文:
如果我们想要获得索引值是1233的值,...
纠正:
如果我们想要获得索引值是21和32的值,...

第3章

P40
原文:
...,虽然梯度下降已被广泛应用,但是其自身在许多不足,...
纠正:
...,虽然梯度下降已被广泛应用,但是其自身存在许多不足,...

第5章

P77
原文:
(3)conda remove -n test -all:在命令行窗口中输入“conda remove -n test -all”并回车,... ;“-all”表示删除指定环境下所有已经安装的包。
纠正:
(3)conda remove -n test --all:在命令行窗口中输入“conda remove -n test --all”并回车,... ;“--all”表示删除指定环境下所有已经安装的包。

P121
原文:
(1)使用NumPy中的onse可以创建维度指定且元素全为1的数组。...,在以上代码中使用onse生成了一个元素全为1且维度为(2,3)的数组,传递给onse的参数是一个列表,...
纠正:
(1)使用NumPy中的ones可以创建维度指定且元素全为1的数组。...,在以上代码中使用ones生成了一个元素全为1且维度为(2,3)的数组,传递给ones的参数是一个列表,...

P129
原文:
(3)randn:生成一个满足平均值为0且方差为1的正分布随机样本数。...
纠正:
(3)randn:生成一个满足平均值为0且方差为1的正态分布随机样本数。...

P130
原文:
(7)normal:生成一个指定维度且满足高斯正分布的随机样本数。...
纠正:
(7)normal:生成一个指定维度且满足高斯正态分布的随机样本数。...

P140
原文:
(5)“loc=4”:强制图例使用图中右角的位置。...
纠正:
(5)“loc=4”:强制图例使用图中右下角的位置。...

第6章

P145
原文:
...,随机生成的浮点数的取值满足均值为0、方差为1的正分布。...
纠正:
...,随机生成的浮点数的取值满足均值为0、方差为1的正态分布。...

P151
原文:
...,即前一个矩阵的数必须和后一个矩阵的数相等,...
纠正:
...,即前一个矩阵的列数必须和后一个矩阵的行数相等,...

P171
原代码:

transform=transforms.Compose([transforms.ToTensor(),
                              transforms.Normalize(mean=[0.5,0.5,0.5],std=[0.5,0.5,0.5])])

纠正代码:

transform=transforms.Compose([transforms.ToTensor(),
                              transforms.Normalize(mean=[0.5],std=[0.5])])

P173
原代码:

images, labels = next(iter(data_loader_train))

img = torchvision.utils.make_grid(images)
img = img.numpy().transpose(1,2,0)

std = [0.5,0.5,0.5]
mean = [0.5,0.5,0.5]
img = img*std+mean
print([labels[i] for i in range(64)])
plt.imshow(img)

纠正代码:

images, labels = next(iter(data_loader_train))

img = torchvision.utils.make_grid(images)
img = img.numpy().transpose(1,2,0)

std = [0.5]
mean = [0.5]
img = img*std+mean
print([labels[i] for i in range(64)])
plt.imshow(img)

P177
原代码:

loss.backward()
optimizer.step()
running_loss += loss.data[0]
running_correct += torch.sum(pred == y_train.data)

纠正代码:

loss.backward()
optimizer.step()
running_loss += loss.data
running_correct += torch.sum(pred == y_train.data)

第7章

P216-217
原代码:

path = "dog_vs_cat"
transform = transforms.Compose([transforms.CenterCrop(224),
                                transforms.ToTensor(),
                                transforms.Normalize([0.5,0.5,0.5], [0.5,0.5,0.5])])

纠正代码: 代码冗余进行删除。

第9章

P234
原文:
...,如果为偶数,则极有可能会出现结果无法判断的情况
纠正: ...,如果为偶数,还需要多一步结果的随机抽选。

P236
原文:
...,比如在Kaggle比赛中就经常会用到各种各样的多模型融合实例。
纠正: ...,比如在Kaggle比赛中就经常会用到各种各样的多模型融合实例

第10章

P256
原代码:

print("Loss is:{:.4f}, Train Accuracy is:{:.4f}%, Test Accuracy is:{:.4f}".format(running_loss/len(dataset_train),100*running_correct/len(dataset_train),100*testing_correct/len(dataset_test)))

纠正代码: 代码前多加4个空格。

第11章

P264
原代码:

img1 = torchvision.utils.make_grid(X_test)
img1 = img1.numpy().transpose(1,2,0)
std = [0.5,0.5,0.5]
mean = [0.5,0.5,0.5]
img1 = img1*std+mean

纠正代码:

img1 = torchvision.utils.make_grid(X_test)
img1 = img1.numpy().transpose(1,2,0)
std = [0.5]
mean = [0.5]
img1 = img1*std+mean

P265、P271
原代码:

transform = transforms.Compose([transforms.ToTensor(),
                                     transforms.Normalize(mean=[0.5,0.5,0.5], std=[0.5,0.5,0.5])])


std = [0.5,0.5,0.5]
mean = [0.5,0.5,0.5]

纠正代码:

transform = transforms.Compose([transforms.ToTensor(),
                                     transforms.Normalize(mean=[0.5], std=[0.5])])


std = [0.5]
mean = [0.5]

P273
原代码:

print("Loss is:{:.4f}".format(running_loss/len(dataset_train)))

纠正代码: 代码前多加4个空格。


《深度学习之PyTorch实战计算机视觉》全书代码

作者其他链接

作者知乎主页:https://www.zhihu.com/people/JaimeTang/activities

问题

读者如果发现书中有问题,希望提issues给本人,作者会及时解答,谢谢!

封面

简介

book-code's People

Contributors

jaimetang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

book-code's Issues

Chapter-7

迁移VGG16部分
running_loss = 0.0
running_corrects = 0
for batch, data in enumerate(dataloader[phase], 1):

    X, y = data
    if Use_gpu:
        X, y = Variable(X.cuda()), Variable(y.cuda())
    else:
        X, y = Variable(X), Variable(y)
        
    y_pred = model(X)
    _, pred = torch.max(y_pred.data, 1)
    optimizer.zero_grad()
    loss = loss_f(y_pred, y)
    
    if phase == "train":
        loss.backward()
        optimizer.step()
        running_loss += loss.data[0]
        running_corrects += torch.sum(pred == y.data)
        
        if batch%500 == 0 and phase =="train":
            print("Batch {}, Train Loss:{:.4f}, Train ACC:{:.4f}".format(batch, running_loss/batch, 100*running_corrects(16*batch)))

epoch_loss = running_loss*16/len(image_datasets[phase])
epoch_acc = 100*running_corrects/len(image_datasets[phase])
print("{} Loss:{:.4f} Acc:{:.4f}%".format(phase, epoch_loss,epoch_acc))

这些行前面全部少了一个缩进

跑着跑着,Loss就变成了Nan,怎么解决

Training...
Batch 500,Model1 Train Loss:0.0951,Model1 Train ACC:96.0000,Model2 Train Loss:0.5438,Model2 Train ACC:82.0000, Blending_Model ACC:96.0000
Batch 1000,Model1 Train Loss:0.0716,Model1 Train ACC:97.0000,Model2 Train Loss:0.4565,Model2 Train ACC:88.0000, Blending_Model ACC:97.0000
Epoch, Model1 Loss:0.0713, Model1 Acc:97.0000%, Model2 Loss:0.4449, Model2 Acc:88.0000%,Blending_Model ACC:97.0000
Validing...
Epoch, Model1 Loss:0.0491, Model1 Acc:98.0000%, Model2 Loss:0.2798, Model2 Acc:96.0000%,Blending_Model ACC:98.0000
Epoch 1/4
Training...
Batch 500,Model1 Train Loss:35.3260,Model1 Train ACC:96.0000,Model2 Train Loss:0.2745,Model2 Train ACC:95.0000, Blending_Model ACC:96.0000
Batch 1000,Model1 Train Loss:nan,Model1 Train ACC:73.0000,Model2 Train Loss:0.2537,Model2 Train ACC:95.0000, Blending_Model ACC:73.0000
Epoch, Model1 Loss:nan, Model1 Acc:71.0000%, Model2 Loss:0.2503, Model2 Acc:95.0000%,Blending_Model ACC:71.0000
Validing...

'Content_loss' object is not iterable

第八章风格迁移运行的时候出现这个错误,请问该怎么解决呢??
Traceback (most recent call last):
File "C:/Users/lucifer/pytorch11/chapter_8.py", line 142, in
optimizer.step(closure)
File "C:\Users\3057.conda\envs\pytorch11\lib\site-packages\torch\optim\lbfgs.py", line 103, in step
orig_loss = closure()
File "C:/Users/lucifer/pytorch11/chapter_8.py", line 133, in closure
for cl in content_loss:
TypeError: 'Content_loss' object is not iterable

Process finished with exit code 1

为什么内容损失是0呢?而且风格损失没有变化??

C:\Users\3057.conda\envs\pytorch11\python.exe C:/Users/lucifer/pytorch11/chp8_aut.py
Epoch:50 Style Loss: 881.223694 Content Loss:0.000000
Epoch:100 Style Loss: 881.223694 Content Loss:0.000000
Epoch:150 Style Loss: 881.223694 Content Loss:0.000000
Epoch:200 Style Loss: 881.223694 Content Loss:0.000000
Epoch:250 Style Loss: 881.223694 Content Loss:0.000000
Epoch:300 Style Loss: 881.223694 Content Loss:0.000000

Process finished with exit code 0

第六章手写数字识别代码报错

tensor.sub_(mean[:, None, None]).div_(std[:, None, None])

RuntimeError: output with shape [1, 28, 28] doesn't match the broadcast shape [3, 28, 28]

以上是报错,似乎是mnist数据集是灰度图?然后代码中处理时将均值设置的是对rgb的图像进行的

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.