在测试模型是需要用model.eval()使模型变为测试模式,
主要是针对dropout和batch normalization在训练时和测试时不一样的情况
其实这么看来,加不加都可以,一般还是加上。
在测试模型是需要用model.eval()使模型变为测试模式,
主要是针对dropout和batch normalization在训练时和测试时不一样的情况
其实这么看来,加不加都可以,一般还是加上。
只需将node文件夹复制/移动到其他位置就可以了。
比如我讲node文件夹从Downloads文件夹移动到~主目录下,并删除了文件夹名字中的版本号,复制的话可以正常运行,但是会重新生成hello world文章,可以通过将这个文章转换成草稿解决。
移动的话,需要在~/.bashrc中重新export一下/path/node/bin
然后source ~/.bashrc使之生效
用vim编辑hexo文章的时候,tags:后面必须空一格才能正常生成hexo文章。
一个基本的线性回归模型1
2
3
4
5
6
7
8
9
10class LinearRegression(nn.Module):
def __init__(self):
super(LinearRegression,self).__init__()
self.linear = nn.Linear(1,1)#一个输入一个输出,此外隐藏一个偏差,y=ax+b
def forward(self,x):
out = self.linear(x)
return out
model = LinearRegression()
至此一个最简单的pytorch模型就定义完了。
带入:1
from torch.utils.data import DataLoader
该类的基本参数:1
class torch.utils.data.DataLoader(dataset, batch_size=1, shuffle=False, sampler=None, num_workers=0, collate_fn=<function default_collate>, pin_memory=False, drop_last=False)
数据加载器。组合数据集和采样器,并在数据集上提供单进程或多进程迭代器。
导入:1
from torchvision.datasets import ImageFolder
常用的参数有:1
ImageFolder(root="root folder path", [transform, target_transform])
方括号是可选参数
通常使用transform,target_transform是对标签进行变换1
2
3
4from torchvision import transforms
transform=transforms.Compose([transforms.Resize(224),transforms.ToTensor(),transforms.Normalize((0.5,0.5,0.5),(0.5,0.5,0.5))])
metadata=ImageFolder(root="/home/h/models/公司项目/4.手掌手相识别/左右手数据", transform=transform)
它有三个成员变量:1
2
3.classes - 用一个list保存 类名
.class_to_idx - 类名对应的 索引
.imgs - 保存(img-path, class) tuple的list
效果分别如下:1
2
3
4
5
6
7
8
9
10
11['右手', '左手']
{'右手': 0, '左手': 1}
[('/home/h/models/公司项目/4.手掌手相识别/左右手数据/右手/palm_03PqxLsHfb.png', 0),
('/home/h/models/公司项目/4.手掌手相识别/左右手数据/右手/palm_07K5FrWykv.png', 0),
('/home/h/models/公司项目/4.手掌手相识别/左右手数据/右手/palm_08qhgOx7tF.png', 0),
('/home/h/models/公司项目/4.手掌手相识别/左右手数据/右手/palm_09FOfDraXb.png', 0),
('/home/h/models/公司项目/4.手掌手相识别/左右手数据/右手/palm_09wPmeWrE2.png', 0),
直接打印metadata可以看到大致信息:1
2
3
4
5
6
7
8
9Dataset ImageFolder
Number of datapoints: 5858
Root Location: /home/h/models/公司项目/4.手掌手相识别/左右手数据
Transforms (if any): Compose(
Resize(size=224, interpolation=PIL.Image.BILINEAR)
ToTensor()
Normalize(mean=(0.5, 0.5, 0.5), std=(0.5, 0.5, 0.5))
)
Target Transforms (if any): None
宽度模型拥有强大的记忆能力。
深度模型具有很强的泛化能力。
可以把模型分成两部分,一部分作为另一部分的输入之一,从而使模型具有两者的优点。
1 | !export https_proxy=http://192.168.1.80:1080 |