Python中的pickle
pickle一、pickle是什么? 在英语中 pickle 名词是泡菜,动词是腌渍的意思。可以理解为把东西腌起来保存成文件,要用的时候读出来洗洗再用。
python的pickle模块实现了基本的数据序列化和反序列化。
序列化对象可以在磁盘上保存对象,并在需要的时候读取出来。任何对象都可以执行序列化操作。
pickling是将Python对象层次结构转换为字节流的过程。
unpickling是反向操作,从而将字节流(来自二进制文件或类似字节的对象)转换回对象层次结构。
1.pickle的优缺点1、优点:
pickle提供了一个简单的持久化功能。可以将对象以文件的形式存放在 ...
Python字符串前面加字母
python字符串前的字母的含义:b\r\f\u
1、字符串前加 u例:u”我是含有中文字符组成的字符串。”
作用:重要的作用是用来指明后面字符串的编码方式;
后面字符串以 Unicode 格式 进行编码,一般用在中文字符串前面,防止因为源码储存格式问题,导致再次使用时出现乱码。
2、字符串前加 r例:r”\n\n\n\n” # 表示一个普通字符串 \n\n\n\n,而不表示换行了。
作用:将字符串中的具有特殊含义的字符意义去掉,比如:\n表示换行,若前面加上r, 即:r’\n’,就表示一个斜行和小写字母n了。
去掉反斜杠的转义。
(特殊字符:即那些,反斜杠加上对应字母,表示对应的特殊含 ...
windows虚拟环境装tf2.6
本来安装tensorflow-gpu是一句话的事情,但因为版本变动,今天安装遇到很多麻烦,简单记录
之前是装了tensorflow-gpu==2.6.0的版本的,但后来在这个环境中安装了sionna,这个可恶的库居然直接卸载了我的tensorflow-gpu==2.6.0,安装了满足它要求的13版本tensorflow,而且还是cpu版本的,安装之前都没问我要不要安装,真可恶啊,导致我不得不重新安装tensorflow-gpu
首先创建3.9版本python环境,然后conda install tensorflow-gpu==2.6.0安装, ...
关于DeepJSCC的思考
复现DeepJSCC后,有一些想法
这是关于图像语义传输的文章,发送和接收端都采用端到端联合设计的思路
当数据集为32×32×3的CIFAR10时:
encoder:16×16×16——>32×8×8——>32×8×8——>32×8×8——>16×8×8 最后一个16控制压缩率,目前1/6
decoder:32×8×8——>32×8×8——>32×8×8——>16×16×16——>3×32×32
当数据集为224×224×3的ImageNet时:
encoder:16×112×112——>32×56× ...
JSCC中为什么无法使用复数信道
背景 JSCC(Joint Source Channel Coding)联合信源信道编解码主要使用DNN实现E2E的通信系统,为了适应信道,就需要将信道嵌入到网络中训练。如果使用信道冲激响应复数表示信道,那么势必要在网络中涉及复数运算。
而我们知道目前的深度学习框架都不支持复数微分,这很难解决,因此在JSCC等涉及到将信道嵌入到网络中的情况时,都无法使用复数信道。
解决? 在Pytorch中,之前尝试过解决这个问题,使用with torch.no_grad()或者.detach()将复数运算脱离网络,然后再将计算结果通过requires_grad添加到计算图中,但实际效果非常差,这或许 ...