你知道 Python 如何解压缩数据吗?

ctf-stego汇总 相关命令,工具: ***binwalk工具使用(提取文件隐藏的文件,原理就是检索匹配文件头) binwalk test.jpg //显示文件名 dd if=test.png of=’test.rar’ bs=1 skip=100097 //根据偏移量提取文件 binwalk -e test.jpg //识别并自动化提取test.jpg中的文件 (http://www.freebuf.com 阅读详情

楔子

当数据量大的时候,自然而然想到的就是对数据进行压缩,下面来看看 Python 如何压缩数据。这里主要介绍三个模块,分别是 zlib、bz2、gzip,它们都是内置的,直接导入即可,不需要额外安装。

那么下面就开始吧。

zlib 模块

看一下 zlib 模块的用法。

import zlib  
  
original_data = b"komeiji satori is a cute girl"  
print(len(original_data))  
"""  
29  
"""  
  
# 对数据进行压缩  
compressed_data = zlib.compress(original_data)  
print(len(compressed_data))  
"""  
37  
"""  
# 我们看到当数据量很小的时候,压缩之后反而会增大  
  
  
# 对数据进行解压  
print(  
    zlib.decompress(compressed_data) == original_data  
)  
"""  
True  
"""

在压缩的时候还可以指定压缩级别:

import zlib  
  
original_data = b"komeiji satori is a cute girl" * 1024  
  
# 压缩级别 0 ~ 9,值越大,压缩级别越高,默认压缩级别为 6  
for i in range(0, 10):  
    compressed_data = zlib.compress(original_data, i)  
    print(f"压缩前数据长度: {len(original_data)}, "  
          f"压缩后数据长度: {len(compressed_data)}")  
"""  
压缩前数据长度: 29696, 压缩后数据长度: 29707  
压缩前数据长度: 29696, 压缩后数据长度: 245  
压缩前数据长度: 29696, 压缩后数据长度: 245  
压缩前数据长度: 29696, 压缩后数据长度: 245  
压缩前数据长度: 29696, 压缩后数据长度: 122  
压缩前数据长度: 29696, 压缩后数据长度: 122  
压缩前数据长度: 29696, 压缩后数据长度: 122  
压缩前数据长度: 29696, 压缩后数据长度: 122  
压缩前数据长度: 29696, 压缩后数据长度: 122  
压缩前数据长度: 29696, 压缩后数据长度: 122  
"""

压缩级别越高,速度越慢,但压缩之后的数据体积也越小。

如果你要压缩的数据过大,那么还可以采用增量压缩。

from io import BytesIO  
import zlib  
  
# 用 buffer 模拟大文件  
original_data = b"komeiji satori is a cute girl" * 1024  
buffer = BytesIO()  
buffer.write(original_data)  
buffer.seek(0)  
  
# 创建压缩器,压缩等级为 5  
compressor = zlib.compressobj(5)  
# 每次读取 1024 字节,进行压缩  
while (data := buffer.read(1024)) != b"":  
    compressor.compress(data)  
# 循环结束之后,压缩结束,调用 flush 方法拿到压缩数据  
compressed_data = compressor.flush()  
  
# 这里我们进行解压,然后对比一下,看看和原始数据是否相等  
# 注意:zlib 压缩之后是有一个头部信息的,否则会认为数据不是 zlib 压缩格式  
# 但是增量压缩会将头部信息给去掉,所以解压的时候还要手动加上  
# 这个头部信息是 b"x\x9c",转成十六进制就是 "789c"  
decompressed_data = zlib.decompress(b"x\x9c" + compressed_data)  
print(original_data == decompressed_data)   
"""  
True  
"""

压缩数据还可以和原始数据混在一起,举个例子:

import zlib  
  
original_data = b"komeiji satori is a cute girl" * 1024  
compressed_data = zlib.compress(original_data)  
combined_data = compressed_data + original_data  
# 创建一个解压缩器  
decompressor = zlib.decompressobj()  
# 对 combined_data 进行解压,只会得到对 compressed_data 解压之后的数据  
# 由于 zlib 会在压缩数据前面加上一个头部信息,所以 combined_data 要求必须是压缩数据在前  
decompressed_data = decompressor.decompress(combined_data)  
# 和原始数据是相等的  
print(decompressed_data == original_data)  
"""  
True  
"""  
# 还可以拿到未解压的数据,显然也是原始数据  
print(decompressor.unused_data == original_data)  
"""  
True  
"""

当然,zlib 还支持验证数据完整性。

import zlib  
  
original_data = b"komeiji satori is a cute girl" * 1024  
# 计算 Adler-32 校验和  
print(zlib.adler32(original_data))  
"""  
4170046071  
"""  
# 计算 CRC-32 校验和  
print(zlib.crc32(original_data))  
"""  
2627291461  
"""

以上就是 zlib 模块的用法。

bz2 模块

bz2 模块和 zlib 的用法非常类似:

import bz2  
  
original_data = b"komeiji satori is a cute girl" * 1024  
# 也可以指定压缩等级,范围 1 ~ 9,注意:zlib 是 0 ~ 9  
compressed_data = bz2.compress(original_data, 5)  
print(len(original_data))  
"""  
29696  
"""  
print(len(compressed_data))  
"""  
103  
"""  
print(bz2.decompress(compressed_data) == original_data)  
"""  
True  
"""

也可以增量压缩:

from io import BytesIO  
import bz2  
  
original_data = b"komeiji satori is a cute girl" * 1024  
buffer = BytesIO()  
buffer.write(original_data)  
buffer.seek(0)  
  
# 创建压缩器,压缩等级为 5  
compressor = bz2.BZ2Compressor(5)  
while (data := buffer.read(1024)) != b"":  
    compressor.compress(data)  
compressed_data = compressor.flush()  
# 这里不需要额外补充头部信息  
decompressed_data = bz2.decompress(compressed_data)  
print(original_data == decompressed_data)  
"""  
True  
"""

也可以同时包含压缩数据和未压缩数据:

import bz2  
  
original_data = b"komeiji satori is a cute girl" * 1024  
compressed_data = bz2.compress(original_data)  
combined_data = compressed_data + original_data  
# 创建一个解压缩器  
decompressor = bz2.BZ2Decompressor()  
decompressed_data = decompressor.decompress(combined_data)  
# 和原始数据是相等的  
print(decompressed_data == original_data)  # True  
# 还可以拿到未解压的数据,显然也是原始数据  
print(decompressor.unused_data == original_data)  # True  
# 同样要求压缩数据在前

相比 zlib,bz2 还可以读写文件:

import os  
import bz2  
  
original_data = b"komeiji satori is a cute girl" * 1024  
# 写入文件  
with bz2.open("1.bz2", "wb", compresslevel=9) as f:  
    f.write(original_data)  
# 读取文件,判断两者是否相等  
with bz2.open("1.bz2", "rb", compresslevel=9) as f:  
    print(f.read() == original_data)  # True  
  
os.unlink("1.bz2")

当然我们使用内置函数 open 打开文件,然后手动写入压缩数据或者读取数据再手动解压,也是可以的。

gzip 模块

首先 gzip 只有全量压缩,没有增量压缩。

import gzip  
  
original_data = b"komeiji satori is a cute girl" * 1024  
# 也可以指定压缩等级,范围 0 ~ 9  
compressed_data = gzip.compress(original_data, 5)  
print(len(original_data))   
"""  
29696  
"""  
print(len(compressed_data))   
"""  
134  
"""  
print(gzip.decompress(compressed_data) == original_data)    
"""  
True  
"""

还可以调用 gzip.open 函数:

import os  
import gzip  
  
original_data = b"komeiji satori is a cute girl" * 1024  
# 写入文件  
with gzip.open("1.gz", "wb", compresslevel=9) as f:  
    f.write(original_data)  
# 读取文件,判断两者是否相等  
with gzip.open("1.gz", "rb", compresslevel=9) as f:  
    print(f.read() == original_data)  #  
    """  
    True  
    """  
  
os.unlink("1.gz")

小结

以上就是 Python 压缩数据所使用的三个模块,之间是比较相似的。另外再补充一点,一般将数据压缩之后,会转成 16 进制进行传输,举个例子:

import binascii  
import gzip  
  
original_data = b"komeiji satori"  
compressed_data = gzip.compress(original_data, 5)  
# 转成 16 进制  
hex_data = binascii.hexlify(compressed_data)  
print(  
    binascii.unhexlify(hex_data) == compressed_data  
)  # True

还是比较简单的。

关于Python学习指南

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。让你从零基础系统性的学好Python!

👉Python所有方向的学习路线👈

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取)

在这里插入图片描述

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末
👉Python70个实战练手案例&源码👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉Python大厂面试资料👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

👉Python副业兼职路线&方法👈

学好 Python 不论是就业还是做副业赚钱都不错,但要学会兼职接单还是要有一个学习规划。

在这里插入图片描述

👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要可以扫描下方优快云官方认证二维码或者点击链接免费领取【保证100%免费】

点击免费领取《优快云大礼包》:Python入门到进阶资料 & 实战源码 & 兼职接单方法 安全链接免费领取

Python与文件操作:压缩、解压与文件遍历 在Python中,os模块是一个非常重要的内置模块,它提供了丰富的操作系统接口,允许程序员执行诸如创建、删除、移动文件,以及遍历目录结构等底层文件系统操作。:这个函数接受一个路径参数,返回一个包含指定目录下所有文件和子目录名称的列表。例如:import os:这个函数用于递归地访问目录树下的每一个目录及其包含的文件。它以生成器的形式返回三元组,分别表示当前目录路径、子目录名列表和文件名列表。 阅读详情

相关推荐

你不知道的python星(*)号用法

我们都知道是一个小小的星号(*),用于编程语言中用于乘法和指针声明等其他任务! 在Python中,没有指针概念,但是却有着强大的功能 乘法与求幂 星号符号最常见的用例是完成乘法任务(众所周知) a = 2*4 b = 2**3 打开可迭代对象的包装 星号可用于解压缩列表或任何可迭代的数据类型。很简单,只需在包含可迭代内容的变量前面放一个星号,然后解压缩,就可以得到解压缩的数据! alist = [1, 2, 3] blist = [4, 5, 6] ctuple = (7, 8, 9) combi

chenchen5152的博客 798

python中zlib库用法详解(压缩与解压缩)

python中zlib库用法详解(压缩与解压缩)

IT之一小佬的博客 1万+

Bandizip Pro(解压缩软件)官方中文版V7.15.38925 | 解压缩全能王 | bandizip是什么软件?

bandizip是什么软件?bandizip是什么软件?Bandizip Pro 是来自韩国知名软件公司Bandisoft开发的具备高达6倍速同时集压缩/解压缩/浏览/编辑为一体的多核压缩能力的优秀解压缩软件电脑版,大名鼎鼎的屏幕录像软件Bandicam也是Bandisoft的力作,本次威航分享的Bandizip Pro企业版可全面兼容rar、ZIP、7Z(lzma2)、ZIPX(xz)、EXE(sfx)、 TAR、TGZ、LZH(lh7)、ISO(joliet...

chaorenqiang的博客 2362

ZLIB 压缩的数据格式规范

ZLIB 压缩的数据格式规范版本3.3   本备忘录的状态:         本备忘为互联网社区提供信息。本备忘并非指定任何性质的互联网标准。本备忘可以无限制发布。   互联网工程指导小组(Internet Engineering Steering Group,IESG)提示:         互联网工程指导小组 IESG 对于包含于本文中的任何知识产权声明的有效性并无任何立场。   声明:   ...

mshgocn的博客 7176

Python数据压缩教程:使用zlib模块压缩数据

在Python中,我们可以使用zlib模块来实现数据的压缩和解压缩操作。通过以上步骤,我们可以在Python中使用zlib模块轻松地进行数据压缩和解压缩操作。请注意,压缩后的数据通常会比原始数据小,这有助于减小存储空间和提高数据传输效率。一旦我们导入了zlib模块,我们就可以使用它提供的函数来压缩数据。函数对数据进行压缩。最后,我们打印出压缩前后数据的大小。除了压缩数据,zlib模块还提供了解压缩数据的功能。的函数,该函数接受要解压缩的数据作为输入,并使用。的函数,该函数接受要压缩的数据作为输入,并使用。

DevScript的博客 510

Qt自带绘图与GDI+绘图方式比较_gdi+实时绘制qt(2)

2、GDI+是Windows操作系统中的图形设备接口,它提供了一套用于绘制图形的API,包括了图形渲染、图形变换、图形剪切、图形填充等功能,使开发者可以快速地开发出各种类型的图形应用程序。1、Qt是一个跨平台的C++应用程序框架,它提供了一套用于GUI编程的类库,包括了绘图、网络、XML、数据库、多线程等模块,使开发者可以快速地开发出高质量的跨平台应用程序。Qt提供了一套用于绘图的类库,包括了QPainter、QPen、QBrush等类,使开发者可以快速地进行图形绘制。

qq_17136213的博客 917

你知道 Python 如何解压缩数据吗

当数据量大的时候,自然而然想到的就是对数据进行压缩,下面来看看 Python 如何压缩数据。这里主要介绍三个模块,分别是 zlib、bz2、gzip,它们都是内置的,直接导入即可,不需要额外安装。

dsuiofh的博客 768

EtherCAT丢包问题深度解析:从原理到实战排查指南

在工业自动化与运动控制领域,实时通讯网络的稳定性是系统可靠运行的基石。EtherCAT(以太网控制自动化技术)作为一种高性能工业以太网协议,其核心在于独特的“飞读飞写”机制和纳秒级的分布时钟同步,以实现多设备间的精准协同。然而,物理链路干扰、配置不当或硬件性能瓶颈都可能导致数据帧丢失,破坏时钟同步,进而引发伺服抖动、定位精度下降乃至生产线停机。本文聚焦于EtherCAT丢包这一典型故障,结合SSC(Slave Stack Code Tool)从站协议栈开发与实时系统调优等工程实践,系统阐述其成因、影响及一套

weixin_32050773的博客 341

Python 中数据解压缩的最佳实践与技巧!

在Python中,数据解压缩是日常数据处理和分析中的重要任务之一。Python提供了丰富的库和模块来处理各种类型的压缩文件,包括Zip、gzip、tar、bz2等。通过使用标准库中的模块或者第三方库,可以轻松地解压不同格式的压缩文件,并进一步处理解压后的数据。从读取文本文件内容到处理结构化数据,再到解析XML或JSON数据,Python提供了丰富的功能和灵活性,使得数据解压缩和处理变得简单而高效。

涛哥聊Python 2437

[0352]基于JAVA的停车场收费智慧管理系统的设计与实现

其次,从经营管理层面考虑,本系统涵盖了丰富的月卡管理和财务结算功能,如月卡用户管理、缴费、注销、挂失、解挂、补办等全流程服务,以及临保和月保的结算汇总与欠费查询等功能,这不仅有助于规范停车场的日常运营管理,更能有效提高财务管理效率,降低运营成本,实现精细化、数字化的财务管控。综上所述,本课题计划研发的基于Java的停车场收费智慧管理系统将在现有研究成果的基础上,重点优化月卡用户全生命周期管理和财务统计分析功能,以满足现代停车场高效、精准、安全的管理需求,紧跟行业发展趋势,为推动智慧城市的建设贡献一份力量。

muyu2980的专栏 589

更改训练好的yolo模型中的class类名,无需重新训练

本文介绍了如何在不重新训练YOLO模型的情况下修改其类名的技巧。关键点在于理解YOLO类名存储逻辑:类名列表(names)存储在配置文件中(.yaml),而非权重文件(.pt)。通过修改配置文件的类名列表(保持类别数量nc不变),即可实现类名更新。具体步骤包括:1)准备修改后的配置文件;2)加载模型并更新类名;3)验证推理结果。该方法适用于YOLOv5/YOLOv8等版本,能有效节省开发时间,适用于类名表述调整、多场景复用等需求。注意:增减类别需重新训练,仅修改类名时需确保类别数量一致。

yolo模型训练找我,AI游戏合作找我 881

python 序列解包(解压缩)

所学的解压缩 如果我们给出一个列表,我们需要一次性取出多个值,我们是不是可以用下面的方式实现呢? name_list = ['nick', 'egon', 'jason'] x = name_list[0] y = name_list[1] z = name_list[2] print(f'x:{x}, y:{y}, z:{z}') x:nick, y:egon, z:jason 讲真,上面的方法真的是谁用谁知道,我们可以试一试解压缩。 解压缩可以这样理解:超市打包是把多个商品放在一起,解压缩其实就是解包

Python热爱者的博客 694

〖Python网络爬虫实战㊴〗- 极验滑块介绍(一)

我们对这个看到不陌生,现在,大多数平台都是用的是这个平台的验证码,我们今天来学习一下,极验滑块验证码的逆向,其他的都差不多。我们了解到这个平台提供了许多验证的方式。现在大多数还是滑块比较多,滑块验证码是一种常见的验证方式,其主要思路为用户通过拖动滑块来完成验证。具体流程如下:首先,用户需要进行滑块验证码的操作,网站会向用户展示一张图片,图片上通常会有一些随机的文字和背景干扰。用户需要通过鼠标拖动滑块,将其移动到指定位置上,通常是将滑块拖动到图片的相应位置上来完成验证。

爱吃饼干的小白鼠的博客 2879

Python中数据解压缩的技巧分享

通过使用标准库中的模块或者第三方库,可以轻松地解压不同格式的压缩文件,并进一步处理解压后的数据。本文将深入探讨Python中数据解压缩的各种方法和技巧,包括使用标准库和第三方库来解压各种类型的压缩文件,以及如何处理压缩文件中的数据。除了Python标准库中提供的模块外,还有一些第三方库可以用来解压其他格式的文件,如 rarfile 用于解压RAR文件, py7zr 用于解压7z文件等。Zip 文件是一种常见的压缩文件格式,Python的标准库中提供了 zipfile 模块来处理Zip文件。

Oona_01的博客 163

基于Python的IMF经济数据爬取与分析:从入门到实战

本文详细介绍了如何使用Python爬取国际货币基金组织(IMF)的经济数据,包括最新的爬虫技术、反反爬策略、数据解析与存储方法。文章从IMF数据源分析开始,逐步讲解如何构建一个完整的爬虫系统,并提供了详细的代码实现和优化建议。通过本文,读者将掌握爬取复杂国际组织数据的关键技术,并能将这些技术应用于其他类似的数据获取场景。关键词:Python爬虫、IMF数据、经济数据获取、数据清洗、反爬策略IMF Data (data.imf.org) - 主要数据门户。

2201_76125261的博客 1439

《YOLO26/YOLO11/YOLOv8改进与系统实战》,改进与系统实战专栏目录和介绍

YOLOv8 是目前比较火和比较成熟的深度学习框架,是2023年1月发布的,由 Ultralytics 团队开发。Ultralytics自YOLOv5 开始一直积极维护和更新 YOLO 框架,因此 YOLOv8 也享有持续的维护与升级支持。因此我写下《手把手教你YOLOv8实战》专栏,专门为那些对计算机视觉、深度学习、以及目标检测技术感兴趣的读者设计。通过本专栏,你将深入理解 YOLOv8 的核心原理与实际应用,从0 开始学习并掌握如何使用 YOLOv8 完成各类目标检测任务,帮助你快速上手并掌握 YOLO

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 1万+

python中byte2array报错_python – 使用ByteArrays解压缩Zlib字符串

我有一个用Adobe Flex 3和Python 2.5开发的Web应用程序(部署在Google App Engine上).已经在Python中创建了一个RESTful Web服务,其结果目前采用XML格式,Flex正在使用HttpService对象读取该格式.现在主要目标是压缩XML,以便HttpService send()方法和结果事件之间的时间更短.我查找了Python文档并设法使用zlib...

weixin_39818014的博客 195

遗传算法(Genetic Algorithm)详解与实现

遗传算法(Genetic Algorithm, GA)是受自然进化原理启发的一系列搜索算法。通过模仿自然选择和繁殖的过程,遗传算法可以为涉及搜索、优化和学习的各种问题提供高质量的解决方案。同时,它们类似于自然进化,因此遗传算法可以克服传统搜索和优化算法遇到的一些障碍,尤其是对于具有大量参数和复杂数学表示形式的问题。

盼小辉丶的博客 24万+

python中序列解包(解压缩)教程

python中序列解包(解压缩)教程

Python热爱者的博客 793

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

99% 的 Python 开发者都不知道的 gzip 高级用法

在当今大数据时代,数据存储和传输成本已成为每个开发者必须考虑的问题。想象一下,当你需要处理日志文件、API 响应或数据库备份时,原始数据往往占用大量空间。Python 内置的 gzip 模块提供了一种简单高效的解决方案,可以轻松将数据压缩到原大小的 1/3 甚至更小!本文将带你深入掌握 gzip 的核心用法,让你的 Python 程序在处理大数据时如虎添翼。

fengshi_fengshi的专栏 798

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

python 解压js压缩的图片_探讨 iOS 中图片的解压缩到渲染过程

一、图像从文件到屏幕过程通常计算机在显示是CPU与GPU协同合作完成一次渲染.接下来我们了解一下CPU/GPU等在这样一次渲染过程中,具体的分工是什么?CPU: 计算视图frame,图片解码,需要绘制纹理图片通过数据总线交给GPUGPU: 纹理混合,顶点变换与计算,像素点的填充计算,渲染到帧缓冲区。时钟信号:垂直同步信号V-Sync / 水平同步信号H-Sync。iOS设备双缓冲机制:显示系统通常...

weixin_34957608的博客 123

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

python序列解包_python 序列解包(解压缩)

序列解包(解压缩)所学的解压缩如果我们给出一个列表,我们需要一次性取出多个值,我们是不是可以用下面的方式实现呢?name_list = ['nick', 'egon', 'jason']x = name_list[0]y = name_list[1]z = name_list[2]print(f'x:{x}, y:{y}, z:{z}')x:nick, y:egon, z:jason讲真,上面的方...

weixin_39797780的博客 178

python中序列解包_python 序列解包(解压缩)

序列解包(解压缩)所学的解压缩如果我们给出一个列表,我们需要一次性取出多个值,我们是不是可以用下面的方式实现呢?name_list = ['nick', 'egon', 'jason']x = name_list[0]y = name_list[1]z = name_list[2]print(f'x:{x}, y:{y}, z:{z}')x:nick, y:egon, z:jason讲真,上面的方...

weixin_39863741的博客 188

python基础-2(数据类型、解压缩、python与用户交互)

python基础 数据类型 首先我们要知道变量就是描述世间万物变化的状态,世间万物变化的状态是多种的,所以用不同的数据类型来描述这些不同的变量。其中最常见的几种数据类型分别是数字类型、字符串类型、列表类型、字典类型、布尔类型等。 数字类型 数字类型又分整型和浮点型。 整型(int) 作用:整型通常用来表示人的年龄、手机号码、级别。 定义:其中变量值为整数。 age = 18 # a...

azixyysqcajx2881的博客 201

python gzip.open_【已解决】给Python中通过urllib2.urlopen获取网页的过程中,添加gzip的压缩与解压缩支持...

【背景】之前已经实现了用python获取网页的内容,相关已实现代码为:#------------------------------------------------------------------------------# get response from url# note: if you have already used cookiejar, then here will auto...

weixin_39800062的博客 215
上一篇: 27个Python Data Science库 (实战代码)
下一篇: 50 个 Pandas 高级操作,建议收藏!
大模型-小原
博客等级 码龄4年 2689粉丝 212原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值