首页 > 其他分享 >小灰灰深度学习day9——多线程读取小批量数据(这里运行的时候报错了,目前还不会解决,待更新……)

小灰灰深度学习day9——多线程读取小批量数据(这里运行的时候报错了,目前还不会解决,待更新……)

时间:2023-06-12 23:22:52浏览次数:45  
标签:灰灰 return self train 报错 mnist import 多线程 def

在这里先把代码放上来

import torch
import time
import numpy as np
import torchvision
from torch.utils import data
from torchvision import transforms
from d2l import torch as d2l
d2l.use_svg_display() #利用svg显示图片
import os
os.environ["KMP_DUPLICATE_LIB_OK"]="TRUE"
#定义一个计时器
class Timer: 
    #记录多次运行时间
    def __init__(self):
        self.times = []
        self.start()
    
    def start(self):
        #启动计时器
        self.tik = time.time()
    
    def stop(self):
        #停止计时器并将时间记录在列表中
        self.times.append(time.time() - self.tik)
        return self.times[-1]  #-1代表列表中的最后一个元素的索引
    
    def avg(self):
        #返回平均时间
        return sum(self.times) / len(self.times)
    
    def sum(self):
        #返回时间总和
        return sum(self.times)
        
    def cumsum(self):
        #返回累计时间
        return np.array(self.times).cumsum().tolist()

#通过ToTensor实例将图像数据从PIL类型变换成32位浮点数格式
#并除以255使得所有像素的数值均在0到1之间
trans = transforms.ToTensor()
mnist_train = torchvision.datasets.FashionMNIST(
    root="../data", train=True, transform=trans, download=True)
mnist_test = torchvision.datasets.FashionMNIST(
    root="../data", train=False, transform=trans, download=True)
print(len(mnist_train))  #训练集60000张图像
print(len(mnist_test))   #测试集10000张图像
#每个图像的高度和宽度都为28像素.数据集由灰度图像组成,其通道数为1
print(mnist_train[0][0].shape)

def get_fashion_mnist_labels(labels):
    #返回Fashion-MNIST数据集的文本标签
    text_labels = ['t-shirt', 'trouser', 'pullover', 'dress', 'coat',
                   'sandal', 'shirt', 'sneaker', 'bag', 'ankle boot']
    return [text_labels[int(i)] for i in labels]

#现在我们创建一个函数来可视化这些样本
def show_images(imgs, num_rows, num_cols, titles = None, scale = 1.5):
    #绘制图像列表
    figsize = (num_cols * scale, num_rows * scale)
    _, axes = d2l.plt.subplots(num_rows, num_cols, figsize=figsize)
    axes = axes.flatten()
    for i, (ax, img) in enumerate(zip(axes, imgs)):
        if torch.is_tensor(img):
            #图像张量
            ax.imshow(img.numpy())
        else:
            # PIL图像
            ax.imshow(img)
        ax.axes.get_xaxis().set_visible(False)
        ax.axes.get_yaxis().set_visible(False)
        if titles:
            ax.set_title(titles[i])
    return axes
x, y = next(iter(data.DataLoader(mnist_train, batch_size=18)))
show_images(x.reshape(18, 28, 28), 2, 9, titles=get_fashion_mnist_labels(y));

batch_size = 256

def get_dataloader_workers():
    #使用4个进程来读取数据
    return 4
#if __name__=="__main__":
train_iter = data.DataLoader(mnist_train, batch_size, shuffle = True,
                             num_workers = get_dataloader_workers())

#我们看一下读取训练数据所需的时间
timer = d2l.Timer()
for x, y in train_iter:
    continue
print(f'{timer.stop():.2f} sec')        

        

 

标签:灰灰,return,self,train,报错,mnist,import,多线程,def
From: https://www.cnblogs.com/fighting-huihui/p/17476337.html

相关文章

  • 虚拟化与大数据的报错问题收录
    摘要:此文记录的是作者在学习过程中遇到的问题及解决方法,会不断更新,有些问题还未得到解决,仅供参考。如果其中问题各位有解决思路或者出现过类似情况欢迎在评论中分享,也算帮作者一把,若是出现其他问题的也可在评论留言,共同讨论,感谢各位。虚拟化技术rabbitmq无法启动的问题目前只针......
  • 如何解决系统报错:nf_conntrack: table full, dropping packets
    问题在系统日志中(/var/log/messages),有时会看到大面积的下面的报错:nf_conntrack:tablefull,droppingpacket这说明系统接到了大量的连接请求,但是系统的连接跟踪表已经满了,无法再记录新的连接了。这时候,系统会丢弃新的连接请求。在CentOS下,默认的连接跟踪表大小是65536,可......
  • 2023-06-12 运行旧的rouyi前端项目报错:unknown property 'disableHostCheck'
    运行,报错ERRORValidationError:Invalidoptionsobject.DevServerhasbeeninitializedusinganoptionsobjectthatdoesnotmatchtheAPIschema.-optionshasanunknownproperty'disableHostCheck'.Thesepropertiesarevalid:......
  • 关于mybaits批量更新和批量插入报错问题
    今天在做项目的时候遇到了一个棘手的问题,在执行批量更新的时候报如下图这个错误 代码如下 这是mybatis很常规的批量更新操作的写法,而且把报错日志中的sql拿出来后在数据库执行也能正常的执行很纳闷,这是因为啥呢?网上查阅资料,大部分都是说,sql里面有数据库的关键字,让加``这个......
  • 2020-10-26 多线程学习1
    join关键字测试:publicclassTestJoin{publicstaticvoidmain(String[]args)throwsInterruptedException{//TODOAuto-generatedmethodstubfor(inti=0;i<3;i++){ThreadTestt1=newThreadTest("A");......
  • 关于VS2022使用EF生成实体模型报错的问题:运行转换:System.NullReferenceException:对象
    起因:之前版本vs2022生成EF模型一直没有问题,在更新了最新的vs2022之后,版本号17.6+,出现此问题:运行转换:System.NullReferenceException:对象引用未设置为对象的示例。在Microsoft.VisualStudio.TextTemplatingD21DB4521EFD493FAE41A9CE9DA80C875F3084552987498BD518713BDE91D14A......
  • 宝典相授,无错在手 |昇思MindSpore报错调试宝典(六):网络构建与训练类报错之资源不足
    上一期讲解了网络构建与训练类报错之算子执行错误该如何定位解决,相信如输入异常、算子实现错误之类算子执行问题已经难不倒大家了。那么本期我们看看网络构建与训练类报错常见的最后一个问题分类,即资源不足方面的报错,如遇到资源不足方面的报错,如 Out Of Memory、memory isn’t......
  • 轻松调试,让报错无处遁形 |昇思MindSpore报错调试宝典(五):网络构建与训练类报错之算子执
    上一期讲解了由于输入参数不符合要求、算子功能不支持等算子编译错误问题该如何定位解决,那么在算子执行的时候也会遇到很多报错,比如输入数据异常、算子实现错误、功能限制、资源限制等问题,遇到这类情形我们正常可以采用类比的分析方法,本期以mindspore.ops.ResizeBicubic算子内部数......
  • 定位调试两手抓,报错真的不可怕 | MindSpore报错调试宝典(二):网络构建与训练类报错之cont
    上一期我们讲解了数据加载与处理类报错如何调试解决,今天给大家继续带来网络构建与训练类报错中的context配置问题,本期仍将以案例的形式展开,详细讲解mindspore.set_context算子的使用方法以及配置方法,希望大家在后续使用context算子过程中可以轻松解决相关的报错问题!同时也欢迎大家......
  • 微信小程序设置 本地图片为背景图 报错
    微信小程序通过wxss进行设置背景图报错经查询,发现微信小程序中,将网络图片或base64图片设置为背景图片可正常显示,将本地图片设置为背景图片则不能显示,解决方法有三种,个人采用的是第三种方法。1.本地图片转换为base64格式在线转格式2.使用行内样式<viewclass="flex_view"......