看看下面两段代码的运行时间!
代码一:

import numpy as np
import time# 100万个数据
n_samples=1000000# 将随机浮点数作为字符串写入本地TXT文件
with open('fdata.txt', 'w') as fdata:for _ in range(n_samples):fdata.write(str(10*np.random.random())+',')# 读取TXT文件的数据,转换为1000x1000的ndarray,并计时
t1=time.time()
with open('fdata.txt','r') as fdata:datastr=fdata.read()
lst = datastr.split(',')
lst.pop()
array_lst=np.array(lst,dtype=float).reshape(1000,1000)
t2=time.time()print(array_lst)
print('\nShape: ',array_lst.shape)
print(f"Time took to read: {t2-t1} seconds.")
#输出结果:
>> [[0.32614787 6.84798256 2.59321025 ... 5.02387324 1.04806225 2.80646522][0.42535168 3.77882315 0.91426996 ... 8.43664343 5.50435042 1.17847223][1.79458482 5.82172793 5.29433626 ... 3.10556071 2.90960252 7.8021901 ]...[3.04453929 1.0270109  8.04185826 ... 2.21814825 3.56490017 3.72934854][7.11767505 7.59239626 5.60733328 ... 8.33572855 3.29231441 8.67716649][4.2606672  0.08492747 1.40436949 ... 5.6204355  4.47407948 9.50940101]]>> Shape:  (1000, 1000)
>> Time took to read: 1.018733024597168 seconds.

代码二:

import numpy as np
import time
np.save('fnumpy.npy', array_lst)t1=time.time()
array_reloaded = np.load('fnumpy.npy')
t2=time.time()print(array_reloaded)
print('\nShape: ',array_reloaded.shape)
print(f"Time took to load: {t2-t1} seconds.")
#输出结果:
>> [[0.32614787 6.84798256 2.59321025 ... 5.02387324 1.04806225 2.80646522][0.42535168 3.77882315 0.91426996 ... 8.43664343 5.50435042 1.17847223][1.79458482 5.82172793 5.29433626 ... 3.10556071 2.90960252 7.8021901 ]...[3.04453929 1.0270109  8.04185826 ... 2.21814825 3.56490017 3.72934854][7.11767505 7.59239626 5.60733328 ... 8.33572855 3.29231441 8.67716649][4.2606672  0.08492747 1.40436949 ... 5.6204355  4.47407948 9.50940101]]>> Shape:  (1000, 1000)
>> Time took to load: 0.009010076522827148 seconds.

如果要以其他形状读取也可以

t1=time.time()
array_reloaded = np.load('fnumpy.npy').reshape(10000,100)
t2=time.time()print(array_reloaded)
print('\nShape: ',array_reloaded.shape)
print(f"Time took to load: {t2-t1} seconds.")
#输出结果:
>> [[0.32614787 6.84798256 2.59321025 ... 3.01180325 2.39479796 0.72345778][3.69505384 4.53401889 8.36879084 ... 9.9009631  7.33501957 2.50186053][4.35664074 4.07578682 1.71320519 ... 8.33236349 7.2902005  5.27535724]...[1.11051629 5.43382324 3.86440843 ... 4.38217095 0.23810232 1.27995629][2.56255361 7.8052843  6.67015391 ... 3.02916997 4.76569949 0.95855667][6.06043577 5.8964256  4.57181929 ... 5.6204355  4.47407948 9.50940101]]>> Shape:  (10000, 100)
>> Time took to load: 0.010006189346313477 seconds.


总结: 从txt或其他文件读取1000*1000的数据,直接读取需要1s,而转成.npy后,读取只需要约0.01s,快100倍。如果需要多次读取相同的数据文件,这是一个有用的技巧,而且如上图所示,数据量越大,速度提升越明显!

在模型训练前为什么要把数据打包为.npy文件,和普通文件格式有什么区别?相关推荐

  1. 基于paddlex图像分类模型训练(一):图像分类数据集切分:文件夹转化为imagenet训练格式

    相关博文 基于paddlex图像分类模型训练(二):训练自己的分类模型.熟悉官方demo 背景 在使用paddlex GUI训练图像分类时,内部自动对导入的分类文件夹进行细分,本文主要介绍其图像分类数 ...

  2. 一种 用于GPT模型 训练的 包含加权 和 数据增强 和 损失方法 的设计

    序 根据之前训练的字模型+PALM效果和经验.真是胡言乱语,牛头不搭马嘴.观察了模型的在各种条件下的输出.看大佬的各种的增强方法,搞了2周写完了新的增强管道. 换了新方案,继续训练了一晚上,马上就有不 ...

  3. 一文了解 AI 商品模型训练平台

    AI平台的初衷永远是提高开发效率,加快算法迭代周期.通过产品化AI技术,让运营人员能够更贴近技术,更好地指导赋能业务场景,给客户带来更好的技术体验和产品体验. 本文是2020年的正式第一文,介绍了人工 ...

  4. 神经网络学习小记录17——使用AlexNet分类模型训练自己的数据(猫狗数据集)

    神经网络学习小记录17--使用AlexNet分类模型训练自己的数据(猫狗数据集) 学习前言 什么是AlexNet模型 训练前准备 1.数据集处理 2.创建Keras的AlexNet模型 开始训练 1. ...

  5. NLP分词数据准备及模型训练实例

    NLP分词数据准备及模型训练实例 目录 NLP分词数据准备及模型训练实例 方案分析及梳理 示例代码

  6. NLP词性标注数据准备及模型训练实例

    NLP词性标注数据准备及模型训练实例 目录 NLP词性标注数据准备及模型训练实例 第一套方案: 第二套方案

  7. 模型训练:数据预处理和预载入

    相对于模型的训练而言,有时候数据的预处理和载入反而是一件更为耗时的工作. 为了优化模型的训练流程,有必要对训练的全流程做一个时间上的评测(Profiling),以弄清每一步所耗费的时间,并发现性能上的 ...

  8. alexeyab darknet 编译_【目标检测实战】Darknet—yolov3模型训练(VOC数据集)

    原文发表在:语雀文档 0.前言 本文为Darknet框架下,利用官方VOC数据集的yolov3模型训练,训练环境为:Ubuntu18.04下的GPU训练,cuda版本10.0:cudnn版本7.6.5 ...

  9. 深度学习模型训练的一般方法(以DSSM为例)

    向AI转型的程序员都关注了这个号???????????? 机器学习AI算法工程   公众号:datayx 本文主要用于记录DSSM模型学习期间遇到的问题及分析.处理经验.先统领性地提出深度学习模型训练 ...

最新文章

  1. 如何编写一个可升级的智能合约
  2. 子主题function php,wordpress子主题怎么添加
  3. mysql的varchar要根据实际长度来申请
  4. 从0到1 构建实时音视频引擎
  5. 使用 Dockerfile 定制镜像
  6. java websocket下载_java-websocket.jar免费版
  7. 终端操作MySQL数据库
  8. python后台架构Django教程——日志系统
  9. Qt: 非阻塞时间延迟;
  10. CenturyLink设定NG-PON2部署阶段 业务、无线回程为初始服务目标
  11. 软件项目管理的重点知识
  12. java String字符串拼接原理
  13. 科幻小说《霜与火》 by 雷·布雷德伯里
  14. 过滤微信特殊字符名称
  15. HTTP代理服务器的工作原理
  16. #Geek Talk# AI and FinTech,投资阿里巴巴的 Benson Tam 也会跟大家一起 Talk
  17. 当AI对话系统像自动驾驶一样分级,谁能率先跑出L5?
  18. Titanic 泰坦尼克数据集 特征工程 机器学习建模
  19. CentOS 7作为客户端使用socks5代理上网
  20. 德国计算机专业硕士费用,德国留学费用一览表2021

热门文章

  1. 使用Visual Studio 2017 创建第一个Python web应用程序
  2. 2021年硝化工艺试题及解析及硝化工艺作业考试题库
  3. sqlmap 注入字典_使用sqlmap进行sql注入
  4. kvm连接服务器显示不出来,KVM切换器网口使用中常见问题及解决方法
  5. 软件需求工程 高校教学平台 系统编码与实现计划
  6. Unity官方流化功能接入细节
  7. 根据RGB值,JSP页面显示相应颜色色块
  8. 硬件篇:手把手教你制作属于你的遥控车(51单片机蓝牙小车)
  9. android集成百度OCR实现身份证、银行卡、营业执照等识别
  10. 2022年山东电工高压电工作业(应急管理厅)考前练习题及答案