Liu Haiwen 2022-09-30 15:46
浏览 12
已结题

value of primitive type and value

问题遇到的现象和发生背景

在深度学习的过程中,利用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

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 10月8日
    • 创建了问题 9月30日

    悬赏问题

    • ¥20 思科:Router c3600 MN-4E插槽
    • ¥15 16进制修改视频的元数据
    • ¥15 岛津txt格式文件转nirs格式
    • ¥15 石墨烯磁表面等离子体
    • ¥15 angular 项目无法启动
    • ¥15 安装wampserver,图标绿色,但是无法进入软件
    • ¥15 C++ MFC 标准库 加密解密解惑
    • ¥15 两条数据合并成一条数据
    • ¥15 Ubuntu虚拟机设置
    • ¥15 comsol三维模型中磁场为什么没有“速度(洛伦兹项)”这一选项