自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

我亦是行人

信息安全&&深度学习

  • 博客(104)
  • 资源 (16)
  • 收藏
  • 关注

原创 pytorch 训练模型很慢,卡在数据读取,卡I/O的有效解决方案

pytorch 训练模型很慢,卡数据读取,卡磁盘数据集i/o的解决方案

2022-10-26 11:10:47 3762 1

原创 pytorch model.train() 和model.eval() 对 BN 层的影响

代码】pytorch model.train() 和model.eval() 对 BN 层的影响。

2022-08-17 23:12:51 566

原创 学术写作科研工具推荐

科研 学术写作工具推荐:持续更新

2022-07-08 22:21:03 1491 1

原创 Batch Normalization、Layer Normalization、Group Normalization、Instance Normalization原理、适用场景和实际使用经验

Batch Normalization、Layer Normalization、Group Normalization、Instance Normalization原理、适用场景和使用经验

2022-06-08 21:57:20 1328 1

原创 使用pytorch自定义DataSet,以加载图像数据集为例,实现一些骚操作

使用pytorch自定义DataSet,以加载图像数据集为例,实现一些骚操作总共分为四步构造一个my_dataset类,继承自torch.utils.data.Dataset重写__getitem__ 和__len__ 类函数建立两个函数find_classes、has_file_allowed_extension,直接从这copy过去建立my_make_dataset函数用来构造(path,lable)对一、构造一个my_dataset类,继承自torch.utils.data.Data

2022-03-13 23:01:34 3942

原创 pytorch单机多卡的正确打开方式 以及可能会遇到的问题和相应的解决方法

pytorch 单机多卡的正确打开方式pytorch 使用单机多卡,大体上有两种方式简单方便的 torch.nn.DataParallel(很 low,但是真的很简单很友好)使用 torch.distributed 加速并行训练(推荐,但是不友好)首先讲一下这两种方式分别的优缺点nn.DataParallel优点:就是简单缺点就是:所有的数据要先load到主GPU上,然后再分发给每个GPU去train,注意这时候主GPU的显存占用很大,你想提升batch_size,那你的主GPU就会限制

2022-03-11 23:45:43 11733 10

原创 Acquiring lock on /*/*/.vscode-server/bin/f80445acd5a3dadef24aa20916 vscode远程linux 服务器无法建立连接

1 删除 C:\Users\用户名.ssh 下的 know_hosts文件2 使用其他的ssh工具(MobaXterm)远程连接目标服务器首先使用指令:ps -aux |grep ‘自己的用户名’ 列出自己所有的运行的程序找到正在使用报错的文件/*/*/.vscode-server/bin/f80445acd5a3dadef24aa20916的进程使用kill ‘进程id’指令杀掉改进程然后使用 rm -rf /*/*/.vscode-server/bin/f80445acd5a3dadef24

2022-02-16 22:22:29 2334 4

原创 python 实现 CRC 冗余码的方法

python 实现 CRC 冗余码的方法我这里考虑输入是 torch.Tensor的一个 只包含0 ,1 元素的张量对于输入是numpy或者0,1字符串的方法就更简单了,总之都先要将输入处理成为 0,1字符串,例如“1010”首先构造一个输入:import randoma = [1 for i in range(16)]b = [0 for i in range(16)]a.extend(b)random.shuffle(a)a = np.array(a)a = torch.Ten

2021-12-06 22:42:10 1867

原创 python 实现 BCH 纠错码的方法

python 实现 BCH 纠错码的方法BCH码是一类重要的纠错码,它把信源待发的信息序列按固定的κ位一组划分成消息组,再将每一消息组独立变换成长为n(n>κ)的二进制数字组,称为码字。如果消息组的数目为M(显然M>=2),由此所获得的M个码字的全体便称为码长为n、信息数目为M的分组码,记为n,M。把消息组变换成码字的过程称为编码,其逆过程称为译码。我这里考虑输入是 torch.Tensor的一个 只包含0 ,1 元素的张量对于输入是numpy或者0,1字符串的方法就更简单了,总之都先要

2021-12-06 17:30:21 5513 6

原创 pytorch 使用DataParallel 单机多卡和单卡保存和加载模型时遇到的问题

首先很多网上的博客,讲的都不对,自己跟着他们踩了很多坑1.单卡训练,单卡加载这里我为了把三个模块save到同一个文件里,我选择对所有的模型先封装成一个checkpoint字典,然后保存到同一个文件里,这样就可以在加载时只需要加载一个参数文件。保存:states = { 'state_dict_encoder': encoder.state_dict(), 'state_dict_decoder': decoder.state_dict(), }torch.s

2021-11-12 22:15:59 3556

原创 腾讯会议如何使用讲演者模式进行汇报(nian gao)

腾讯会议如何使用讲演者模式进行汇报(nian gao)首先列出步骤,再一一演示:alt+f5 开启讲演者模式,调整讲演者模式的窗口为小窗alt+tab 切换回腾讯会议界面,屏幕共享power point窗口(注意不是“桌面1”)alt+tab 切换回讲演者模式小窗,开始讲演播放结束,共享屏幕结束重新共享屏幕,共享“桌面1”下面开始演示:1. alt+f5 开启讲演者模式,调整讲演者模式的窗口为小窗2. alt+tab 切换回腾讯会议界面,屏幕共享power point窗口(注意不是

2021-10-12 09:56:20 6887

原创 (python numpy) np.array.shape 中 (3,)、(3,1)、(1,3)的区别

(python numpy) np.array.shape 中 (3,)、(3,1)、(1,3)的区别被人问到这个问题,就记录一下吧1. (3,)(3,)是[x,y,z][x,y,z][x,y,z]的形式,即为一维数组,访问数组元素用一个indexfor example:>>> array1 = np.array([1,2,3])>>> array1.shape(3,)2. (3,1)(3,1)是[[x],[y],[z]][[x],[y],[z]][[

2021-08-24 11:24:49 6174 4

原创 ViT(Vision Transformer)学习

ViT(Vison Transformer)学习Paper:An image is worth 16×16 words: transformers for image recognition at scale. In ICLR, 2021.Transformer 在 NLP领域大放异彩,并且随着模型和数据集的不断增长,仍然没有表现出饱和的迹象。这使得使用更大规模的数据对Transformer结构进行训练得到表现更优的模型成为了一种解决问题的方案。受 NLP 中 Transformer 成功的启发,作者尝

2021-07-01 15:45:11 1210

原创 character-level OCR之Character Region Awareness for Text Detection(CRAFT) 论文阅读

Character Region Awareness for Text Detection 论文阅读论文地址(arXiv) ,pytorch版本代码地址最近在看一些OCR的问题,CRAFT是在场景OCR中效果比较好的模型,记录一下论文的阅读已有的文本检测工作大致如下:基于回归的文本检测(Regression-based text detectors):TextBoxes、DMPNet .etc,运用通用目标检测方法到文本检测中。基于分割的文本检测(Segmentation-based text

2021-06-29 15:14:00 488

原创 pytorch中的squeeze和unsqueeze

pytorch中的squeeze和unsqueezeunsqueeze即在参数指定的维度位置,增加一个维度(就是在第几个“[”的位置增加一个“[”)import torcha = torch.arange(0,8)print(a)b = a.view(2,4)print(b)b = b.unsqueeze(1)print(b)tensor([0, 1, 2, 3, 4, 5, 6, 7])tensor([[0, 1, 2, 3], [4, 5, 6, 7]])ten

2021-03-15 08:52:24 482

原创 pytorch-多GPU训练(单机多卡、多机多卡)

pytorch-多GPU训练(单机多卡、多机多卡)pytorch 单机多卡训练首先是数据集的分布处理需要用到的包:torch.utils.data.distributed.DistributedSamplertorch.utils.data.DataLoadertorch.utils.data.DatasetDistributedSampler这个包我们用来确保dataloader只会load到整个数据集的一个特定子集,为每一个子进程划分出一部分数据集,以避免不同进程之间数据重复。而我们构造

2021-03-13 09:58:35 1794

原创 sklearn .feature_extraction.text.TfidVectorizer.fit_transform(text)

sklearn .feature_extraction.text.TfidVectorizer.fit_transform(text)def normal_test(): from sklearn.feature_extraction.text import TfidfVectorizer corpus = [ 'This is the first document.', 'This document is the second document.', ]

2021-02-04 16:18:32 470 1

原创 python读取json格式的超参数

python读取json格式的超参数json文件:{ "full_finetuning": true, "max_len": 180, "learning_rate": 3e-5, "weight_decay": 0.01, "clip_grad": 2, "batch_size": 30, "epoch_num": 20, "min_epoch_num": 5, "patience": 0.02, "patience_

2021-01-27 08:27:30 759

原创 pytorch加载数据集-DataLoader解析以及一个通用的数据集加载模板

DataLoaderclass torch.utils.data.DataLoader( \ dataset, batch_size=1, shuffle=False, sampler=None, batch_sampler=None, \num_workers=0, collate_fn=None, pin_memory=False, drop_last=False, timeout=0,\worker_init_fn=None, multiprocessing_context=None, gen

2021-01-21 10:36:00 1679 1

原创 pytorch squeeze and unsqueeze

torch.squeeze(input, dim=None, *, out=None) → Tensorsqueezex = torch.zeros(2, 1, 2, 1, 2)x.size()#torch.Size([2, 1, 2, 1, 2])y = torch.squeeze(x)y.size()#torch.Size([2, 2, 2])y = torch.squeeze(x, 0)y.size()#torch.Size([2, 1, 2, 1, 2])y = torch.

2021-01-20 11:24:56 205

原创 np.triu

np.triunumpy.triu(m, k=0)Upper triangle of an array.Return a copy of a matrix with the elements below the k-th diagonal zeroed.返回一个矩阵的上三角矩阵,第k条对角线以下的元素归零例如:import numpy as npnp.triu(np.ones([4,4]), k=1).astype('uint8')output:array([[0, 1, 1, 1],

2021-01-20 08:55:48 613

原创 torchtext.data.Field

torchtext.data.Field类接口class torchtext.data.Field(sequential=True, use_vocab=True, init_token=None, eos_token=None, fix_length=None, dtype=torch.int64, preprocessing=None, postprocessing=None, lower=False, tokenize=None, tokenizer_language='en', include_

2021-01-19 11:28:11 2771 2

原创 python中的[-1]、[:-1]、[::-1]、[n::-1]

import numpy as npa=np.random.rand(4)print(a)[0.48720333 0.67178384 0.65662903 0.40513918] print(a[-1]) #取最后一个元素0.4051391774882336 print(a[:-1]) #去除最后一个元素[0.48720333 0.67178384 0.65662903] print(a[::-1]) #逆序[0.40513918 0.65662903 0.67178384 0

2021-01-19 11:15:09 309

原创 pytorch-LSTM的输入和输出尺寸

LSTM的输入和输出尺寸CLASS torch.nn.LSTM(*args, **kwargs)Applies a multi-layer long short-term memory (LSTM) RNN to an input sequence.For each element in the input sequence, each layer computes the following function:对于一个输入序列实现多层长短期记忆的RNN网络,对于输入序列中的每一个元素,LSTM的

2021-01-19 10:21:20 5521 1

原创 pytorch-word2vec的实例实现

word2vec的实例实现实现词嵌入word2vec中的跳字模型和近似训练中的负采样以及二次采样(subsampling),在语料库上训练词嵌入模型的实现。首先导入实验所需的包或模块。import collectionsimport mathimport randomimport sysimport timeimport osimport numpy as npimport torchfrom torch import nnimport torch.utils.data as Dat

2021-01-17 15:26:51 1263 1

原创 深度学习-自然语言处理中的近似训练

自然语言处理中的近似训练跳字模型的核心在于使用softmax运算得到给定中心词wcw_cwc​来生成背景词wow_owo​的条件概率P(wo∣wc)=exp(uo⊤vc)∑i∈Vexp(ui⊤vc).P(w_o \mid w_c) = \frac{\text{exp}(\boldsymbol{u}_o^\top \boldsymbol{v}_c)}{ \sum_{i \in \mathcal{V}} \text{exp}(\boldsymbol{u}_i^\top \boldsymbol{v}_c)}.

2021-01-15 15:31:24 470 1

原创 深度学习-词嵌入(word2vec)

词嵌入(word2vec)自然语言是一套用来表达含义的复杂系统。在这套系统中,词是表义的基本单元。顾名思义,词向量是用来表示词的向量,也可被认为是词的特征向量或表征。把词映射为实数域向量的技术也叫词嵌入(word embedding)。近年来,词嵌入已逐渐成为自然语言处理的基础知识。跳字模型跳字模型假设基于某个词来生成它在文本序列周围的词。举个例子:假设文本序列是“the”“man”“loves”“his”“son”以“loves”作为中心词,设背景窗口大小为2如下图所示,跳字模型所关心的是

2021-01-15 14:43:17 346 1

原创 pytorch深度学习-机器视觉-目标检测和边界框简介

机器视觉之目标检测和边界框简介在图像分类任务里,我们假设图像里只有一个主体目标,并关注如何识别该目标的类别。然而,很多时候图像里有多个我们感兴趣的目标,我们不仅想知道它们的类别,还想得到它们在图像中的具体位置。在计算机视觉里,我们将这类任务称为目标检测(object detection)或物体检测。目标检测在多个领域中被广泛使用。例如,在无人驾驶里,我们需要通过识别拍摄到的视频图像里的车辆、行人、道路和障碍的位置来规划行进线路。机器人也常通过该任务来检测感兴趣的目标。安防领域则需要检测异常目标,如歹徒或

2021-01-15 09:01:52 1481 1

原创 pytorch深度学习-微调(fine tuning)

微调(fine tuning)首先举一个例子,假设我们想从图像中识别出不同种类的椅子,然后将购买链接推荐给用户。一种可能的方法是先找出100种常见的椅子,为每种椅子拍摄1,000张不同角度的图像,然后在收集到的图像数据集上训练一个分类模型。这个椅子数据集虽然可能比Fashion-MNIST数据集要庞大,但样本数仍然不及ImageNet数据集中样本数的十分之一。这可能会导致适用于ImageNet数据集的复杂模型在这个椅子数据集上过拟合。同时,因为数据量有限,最终训练得到的模型的精度也可能达不到实用的要求。

2021-01-14 20:06:38 1655 3

原创 深度学习-计算机视觉--图像增广

图像增广大规模数据集是成功应用深度神经网络的前提。图像增广(image augmentation)技术通过对训练图像做一系列随机改变,来产生相似但又不同的训练样本,从而扩大训练数据集的规模。图像增广的另一种解释是,随机改变训练样本可以降低模型对某些属性的依赖,从而提高模型的泛化能力。例如,我们可以对图像进行不同方式的裁剪,使感兴趣的物体出现在不同位置,从而减轻模型对物体出现位置的依赖性。我们也可以调整亮度、色彩等因素来降低模型对色彩的敏感度。可以说,在当年AlexNet的成功中,图像增广技术功不可没。

2021-01-11 16:15:42 949 1

原创 pytorch多GPU计算

pytorch多GPU计算如果正确安装了NVIDIA驱动,我们可以通过在命令行输入nvidia-smi命令来查看当前计算机上的全部GPU定义一个模型:import torchnet = torch.nn.Linear(10, 1).cuda()netoutput:Linear(in_features=10, out_features=1, bias=True)要想使用PyTorch进行多GPU计算,最简单的方法是直接用torch.nn.DataParallel将模型wrap一下即可:n

2021-01-02 17:49:48 954 1

原创 深度学习-自动并行计算

自动并行计算异步计算默认情况下,PyTorch中的 GPU 操作是异步的。当调用一个使用 GPU 的函数时,这些操作会在特定的设备上排队但不一定会在稍后立即执行。这就使我们可以并行更多的计算,包括 CPU 或其他 GPU 上的操作。一般情况下,异步计算的效果对调用者是不可见的,因为每个设备按照它们排队的顺序执行操作在 CPU 和 GPU 之间或两个 GPU 之间复制数据时,PyTorch会自动执行必要的同步操作。因此,计算将按每个操作同步执行的方式进行。 可以通过设置环境变量CUDA_LAU

2021-01-02 17:15:34 1021 1

原创 pytorch命令式和符号式混合编程

命令式和符号式编程命令式编程命令式编程使用编程语句改变程序状态,如下:def add(a, b): return a + bdef fancy_func(a, b, c, d): e = add(a, b) f = add(c, d) g = add(e, f) return gfancy_func(1, 2, 3, 4) # 10在运行语句e = add(a, b)时,Python会做加法运算并将结果存储在变量e中,从而令程序的状态发生改变。类似地

2021-01-02 17:05:58 486 1

原创 深度学习优化算法-Adam算法

Adam算法Adam算法在RMSProp算法基础上对小批量随机梯度也做了指数加权移动平均。Adam算法可以看做是RMSProp算法与动量法的结合。算法内容Adam算法使用了动量变量vt\boldsymbol{v}_tvt​和RMSProp算法中小批量随机梯度按元素平方的指数加权移动平均变量st\boldsymbol{s}_tst​,并在时间步0将它们中每个元素初始化为0。给定超参数0≤β1<10 \leq \beta_1 < 10≤β1​<1(算法作者建议设为0.9)时间步t

2021-01-02 11:28:26 2370

原创 深度学习优化算法-AdaDelta算法

AdaDelta算法除了RMSProp算法以外,另一个常用优化算法AdaDelta算法也针对AdaGrad算法在迭代后期可能较难找到有用解的问题做了改进 [1]。不一样的是,AdaDelta算法没有学习率这个超参数。 它通过使用有关自变量更新量平方的指数加权移动平均的项来替代RMSProp算法中的学习率。AdaDelta算法也像RMSProp算法一样,使用了小批量随机梯度gt\boldsymbol{g}_tgt​按元素平方的指数加权移动平均变量st\boldsymbol{s}_tst​。在时间步0

2021-01-02 11:17:30 4724 2

原创 深度学习-参数与超参数

参数(parameters)/模型参数由模型通过学习得到的变量比如权重、偏置超参数(hyperparameters)/算法参数根据经验进行设定,影响到权重和偏置的大小比如迭代次数、隐藏层的层数、每层神经元的个数、学习速率等...

2021-01-02 11:02:45 308

原创 深度学习优化算法:RMSProp算法

RMSProp算法在AdaGrad算法中,因为调整学习率时分母上的变量st\boldsymbol{s}_tst​一直在累加按元素平方的小批量随机梯度,所以目标函数自变量每个元素的学习率在迭代过程中一直在降低(或不变)。因此,当学习率在迭代早期降得较快且当前解依然不佳时,AdaGrad算法在迭代后期由于学习率过小,可能较难找到一个有用的解。为了解决这一问题,RMSProp算法对AdaGrad算法做了一点小小的修改。算法内容之前说过指数加权移动平均。不同于AdaGrad算法里状态变量st\boldsymb

2021-01-02 10:58:10 9038

原创 深度学习AdaGrad算法

AdaGrad算法在一般的优化算法中,目标函数自变量的每一个元素在相同时间步都使用同一个学习率来自我迭代。例如,假设目标函数为fff,自变量为一个二维向量[x1,x2]⊤[x_1, x_2]^\top[x1​,x2​]⊤,该向量中每一个元素在迭代时都使用相同的学习率。例如,在学习率为η\etaη的梯度下降中,元素x1x_1x1​和x2x_2x2​都使用相同的学习率η\etaη来自我迭代:x1←x1−η∂f∂x1,x2←x2−η∂f∂x2. x_1 \leftarrow x_1 - \eta \fra

2021-01-02 10:45:24 4339 2

原创 动量法解决梯度下降的一些问题

动量法目标函数有关自变量的梯度代表了目标函数在自变量当前位置下降最快的方向,因此,梯度下降也叫作最陡下降(steepest descent)。在每次迭代中,梯度下降根据自变量当前位置,沿着当前位置的梯度更新自变量。然而,如果自变量的迭代方向仅仅取决于自变量当前位置,这可能会带来一些问题。梯度下降的问题考虑一个目标函数:输入为二维向量x=[x1,x2]⊤\boldsymbol{x} = [x_1, x_2]^\topx=[x1​,x2​]⊤输出为标量f(x)=0.1x12+2x22f(\bold

2020-12-25 22:24:19 707 1

原创 小批量随机梯度下降

小批量随机梯度下降在每一次迭代中,梯度下降使用整个训练数据集来计算梯度,因此它有时也被称为批量梯度下降(batch gradient descent)。随机梯度下降在每次迭代中只随机采样一个样本来计算梯度。可以在每轮迭代中随机均匀采样多个样本来组成一个小批量,然后使用这个小批量来计算梯度。下面就来描述小批量随机梯度下降设目标函数f(x):Rd→Rf(\boldsymbol{x}): \mathbb{R}^d \rightarrow \mathbb{R}f(x):Rd→R。在迭代开始前的时间

2020-12-25 17:05:04 7115

audio_search.zip

audio_search.zip

2021-06-03

py-communicate-final.zip

py-communicate-final.zip

2021-06-03

Stirmark_for_audio.zip

stirmark for audio 用于音频水印鲁棒性测试

2021-05-24

合肥工业大学 编译原理实验 LR(1)分析法

对下列文法,用 LR(1)分析法对任意输入的符号串进行分析: (1)E-> E+T (2)E->T (3)T-> T*F (4)T->F (5)F-> (E) (6)F-> i

2020-08-27

合肥工业大学 编译原理实验 LL(1)分析法

1、根据某一文法编制调试 LL ( 1 )分析程序,以便对任意输入的符号串进行分析。 2、构造预测分析表,并利用分析表和一个栈来实现对上述程序设计语言的分析程序。 3、分析法的功能是利用 LL(1)控制程序根据显示栈栈顶内容、向前看符号以及 LL(1)分析表,对输入符号串自上而下的分析过程。

2020-08-27

合肥工业大学 编译原理实验 词法分析器设计实现

1) 可选择文件读取多行字符进行分析 2) 可手动输入多行字符并读入进行分析 3) 关键字、标识符、分界符号、算术运算符、关系运算符、常数表用户自定义 4) 统计行数和列数用于错误单词的定位 5) 删除空格类字符,包括回车、制表符空格 6) 按拼写单词(关键字、标识符、分界符号),并用(内码,属性)二元式表示。 7) 如果发现错误则报告出错 8) 根据需要是否填写标识符表供以后各阶段使用 9) 识别常数,可辨别整数、浮点数 10) 识别算术运算符,支持++,--,==,&&,|| 11) 识别注释部分、空格,并跳过

2020-08-27

《系统硬件综合设计》报告,cpu课设

1. 设计并实现一个多周期流水 MIPS32 CPU; 2、五段流水、可以处理冲突; 3、实现 MIPS 指令集的三种类型的指令若干条; 4、使用 modelsim-verilog 仿真测试

2020-08-27

合肥工业大学系统硬件综合设计,计算机组成原理CPU课设,多周期,modelsim

设计一个支持以下 28 条指令的包含取指、译码(取操作数)、执行、访存、 写回五个工作周期的五级流水多周期 CPU。能够处理数据相关的冲突,能够处理 分支延迟。

2020-08-27

基于语音的文件系统搜索工具

说出文件名字,即可自动查找出文件; 基于语音识别技术或者已有的语音云实现; 实现精确/模糊匹配; 本系统设计核心分为实时 录音、语音识别、文件名数据库、文件检索、用户接口五个模块。使用 Python 调用操作系统(win10)接口,调用硬件设备麦克风进行录音同时设计事件响应机制,满足随时开始录音,随时停止录音,同时保证录音的质 量不受影响。将录音的结果存到磁盘中的指定位置。 两种语音识别模块,一是基于 GMM-HMM 的语音识别模型的训练与使用, 二是使用百度语音识别 API。识别结果传递到文件检索模块进行检索。使用 sqlite 数据库,创建数据表,利用操作系统接口访问文件系统从而从磁 盘中

2020-08-26

合工大java程序设计实验,货物管理系统

合工大java程序设计实验,实现货物管理机制,包含三个部分,需要建立文件存储货物信息,从文件读入处理货物信息

2019-06-26

LSBR图像信息隐藏 Python源代码

对隐藏的图片矩阵的隐藏那一层对应的二维矩阵进行左移四位操作,得到对应提取图像的矩阵,进行矩阵转化为对应图片输出。

2019-04-05

LSBR图像信息隐藏 matlab源代码

使用直接4bit替换法:以载体图像的各像素最低4位比特位作为冗余空间,将秘密图像的高4bit作为秘密信息嵌入载体。

2019-04-05

基于GUI的网络通信程序设计JAVA源代码(server)

基于GUI的网络通信程序设计 JAVA源代码 (server)部分

2019-02-26

基于GUI的网络通信程序设计 JAVA源代码(client)

基于GUI的网络通信程序设计 JAVA源代码 (client部分)

2019-02-26

java实现简单RSA 公钥密码系统 源代码(有界面)

java实现简单RSA 公钥密码系统 源代码(有界面)

2019-01-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除