Python图片存储和访问的三种方式是什么


今天小编给大家分享一下Python图片存储和访问的三种方式是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。ImageNet 是一个著名的公共图像数据库,用于训练对象分类、检测和分割等任务的模型,它包含超过 1400 万张图像。在 Python 中处理图像数据的时候,例如应用卷积神经网络(也称CNN)等算法可以处理大量图像数据集,这里就需要学习如何用最简单的方式存储、读取数据。对于图像数据处理应该有有个定量的比较方式,读取和写入文件需要多长时间,以及将使用多少磁盘内存。分别用不同的方式去处理、解决图像的存储、性能优化的问题。我免费云主机域名们熟知的图像数据集 CIFAR-10,由 60000 个 32×32 像素的彩色图像组成,这些图像属于不同的对象类别,例如狗、猫和飞机。相对而言 CIFAR 不是一个非常大的数据集,但如使用完整的 TinyImages 数据集,那么将需要大约 400GB 的可用磁盘空间。文中的代码应用的数据集下载地址 CIFAR-10 数据集 。这份数据是使用cPickle进行了序列化和批量保存。pickle模块可以序列化任何 Python 对象,而无需进行任何额外的代码或转换。但是有一个潜在的严重缺点,即在处理大量数据时会带来安全风险无法评估。图像加载到 NumPy 数组中安装三方库 Pillow 用于图像处理 。LMDB 也称为“闪电数据库”,代表闪电内存映射数据库,因为速度快并且使用内存映射文件。它是键值存储,而不是关系数据库。安装三方库 lmdb 用于图像处理 。HDF5 代表 Hierarchical Data Format,一种称为 HDF4 或 HDF5 的文件格式。起源于美国国家超级计算应用中心,是一种可移植、紧凑的科学数据格式。安装三方库 h6py 用于图像处理 。3种不同的方式进行数据读取操作同时加载的数据可以创建文件夹分开保存使用 Pillow 完成输入是一个单一的图像 image,在内存中作为一个 NumPy 数组,并且使用唯一的图像 ID 对其进行命名image_id。单个图像保存到磁盘LMDB 是一个键值对存储系统,其中每个条目都保存为一个字节数组,键将是每个图像的唯一标识符,值将是图像本身。键和值都应该是字符串。 常见的用法是将值序列化为字符串,然后在读回时将其反序列化。用于重建的图像尺寸,某些数据集可能包含不同大小的图像会使用到这个方法。单个图像保存到 LMDB一个 HDF5 文件可以包含多个数据集。可以创建两个数据集,一个用于图像,一个用于元数据。将保存单个图像的所有三个函数放入字典中。以三种不同的方式存储保存 CIFAR 中的第一张图像及其对应的标签。来一个表格看看对比。同单个图像存储方法类似,修改代码进行多个图像数据的存储。将多个图像保存为.png文件就可以理解为多次调用 store_single_method() 这样。但这不适用于 LMDB 或 HDF5,因为每个图像都有不同的数据库文件。将一组图像存储到磁盘将一组图像存储到 LMDB将一组图像存储到 HDF5使用 100000 个图像进行测试创建一个计算方式进行对比PLOT 显示具有多个数据集和匹配图例的单个图将多个图像保存为.png文件就可以理解为多次调用 read_single_method() 这样。但这不适用于 LMDB 或 HDF5,因为每个图像都有不同的数据库文件。从磁盘中读取多个都图像从LMDB中读取多个都图像从HDF5中读取多个都图像创建一个计算方式进行对比同一张图表上查看读取和写入时间各种存储方式使用磁盘空间虽然 HDF5 和 LMDB 都占用更多的磁盘空间。需要注意的是 LMDB 和 HDF5 磁盘的使用和性能在很大程度上取决于各种因素,包括操作系统,更重要的是存储的数据大小。通常对于大的数据集,可以通过并行化来加速操作。 也就是我们经常说的并发处理。作为.png 文件存储到磁盘实际上允许完全并发。只要图像名称不同就可以从不同的线程读取多个图像,或一次写入多个文件。如果将所有 CIFAR 分成十组,那么可以为一组中的每个读取设置十个进程,并且相应的处理时间可以减少到原来的10%左右。以上就是“Python图片存储和访问的三种方式是什么”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注百云主机行业资讯频道。

相关推荐: egg.js是不是node

这篇文章主要讲解了“egg.js是不是node”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“egg.js是不是node”吧! egg.js是node框架,是一个继承于Koa的node.js框架;egg.js框架…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 04/08 17:44
下一篇 04/08 17:44

相关推荐