问题遇到的现象和发生背景
在深度学习的过程中,利用pytorch构建了一个数据迭代器,想测试一下减小data.DataLoader的参数batch_size的大小是否会影响数据读取的性能。于是我利用numpy创建了一个数组batch_size[1,2,..200],然后利用for循环遍历所有的batch_size。
用代码块功能插入代码,请勿粘贴截图
#-------------------1.数据迭代器---------------------#
def load_data_fashion_mnist(batch_size,resize):
transform=[transforms.ToTensor()]
if resize:
transform.insert(0,transforms.Resize(resize))
transform=transforms.Compose(transform)
mnist_train=torchvision.datasets.FashionMNIST(root='data',train=True,transform=transform,download=True)
mnist_test=torchvision.datasets.FashionMNIST(root='data',train=False,transform=transform,download=True)
return (data.DataLoader(mnist_train,batch_size,shuffle=True,num_workers=4),
data.DataLoader(mnist_test,batch_size,shuffle=True,num_workers=4))
if __name__ == '__main__':
#-------------------1.读取数据---------------------#
batch_size=np.arange(100,200,1,dtype=np.int)
for i in range(len(batch_size)):
# a=batch_size[i]
a=batch_size[i]
b=100
time1=time_self.Timer()
train_iter,test_iter=load_data_fashion_mnist(batch_size=a,resize=(56,56))
for X,y in train_iter:
continue
print(f'时间:{time1.stop()}\t')
###### 运行结果及报错内容
```python
ValueError: batch_size should be a positive integer value, but got batch_size=100
我的解答思路和尝试过的方法
我尝试用一个整形变量a=100去测试,没有问题。经过调试发现从数组batch_size遍历出的元素类型是value of primitive value,而整形变量a的类型是value