1.多线程数据处理
在Pytorch入门中,经常会用CIFAR10数据集,用它来处理数据集,此时在Windows下,如果线程数目大于0,则运行时会出现错误,而在Linux下这不会产生错误
trainloader = torch.utils.data.DataLoader(trainset, batch_size=4, shuffle=True, num_workers=2)
testloader = torch.utils.data.DataLoader(testset, batch_size=4, shuffle=False, num_workers=2)
最好的方法是将所有操作包装在函数中,然后在if __name__ == '__main__'
子句中调用它们:
# Imports for dataset generation, training, etc
def load_datasets(...):
# Code to load the datasets with multiple workers
def train(...):
# Code to train the model
if __name__ == '__main__':
load_datasets()
train()
2.if…else…
i = 5 if a > 7 else 0
# 正常理解如下:
if a > 7:
i = 5
else:
i = 0
3.创建List或Dict
list = List()
dict = Dict()
# list = []与dict = {}不推荐
4.字符串取代
s = "This is a test
s.replace(old="test", new="train")
print(s) # 结果是This is a test,s并未真正改变
s = s.replace(old="test", new="train")
print(s) # 结果是This is a train,s改变了
这是一个很容易犯的错误,对原值修改好要记得覆盖好