- 博客(290)
- 资源 (7)
- 收藏
- 关注
原创 【python进阶】txt excel pickle opencv操作demo
写一段代码,模拟生成accuracy逐步上升、loss逐步下降的训练日志,并将日志信息记录到 training_log.txt中。##读取YOLO数据后画出曲线图。
2024-05-23 16:35:28 396
原创 pkl 转换为h5
在 Python 中,您可以使用一些库来将 pickle(pkl)文件转换为 h5 格式。一种常见的方法是使用 pandas 库,该库提供了一种简便的方法来处理数据并转换格式。
2024-05-22 18:05:47 215
原创 t-SNE:可视化效果最好的降维算法
t-SNE的主要用途是可视化和探索高维数据。它由Laurens van der Maatens和Geoffrey Hinton在JMLR第九卷(2008年)中开发并出版。t-SNE的主要目标是将多维数据集转换为低维数据集。相对于其他的降维算法,对于数据可视化而言t-SNE的效果最好。如果我们将t-SNE应用于n维数据,它将智能地将n维数据映射到3d甚至2d数据,并且原始数据的相对相似性非常好。与PCA一样,t-SNE不是线性降维技术,它遵循非线性,这是它可以捕获高维数据的复杂流形结构的主要原因。
2024-05-16 16:57:12 97
原创 FT STFT CWT DWT 最经典理解
通过这样做,仅选择信号的前 T/2 秒,并对窗口进行适当的加权(如果窗口是矩形,幅度为“1”,则乘积将等于信号)。事实上,小波级数只是连续小波变换的采样版本,其提供的信息对于信号的重构来说是高度冗余的。然后对这个乘积积分。在STFT中,我们的窗口是有限长度的,因此它只覆盖了信号的一部分,这导致频率分辨率变差。我所说的变穷的意思是,我们不再知道信号中存在的确切频率成分,而只知道存在的一段频率。在小波变换的定义中,尺度项用在分母上,因此,与上述表述相反,即尺度s > 1使信号膨胀,而尺度s < 1使信号压缩。
2024-05-16 10:38:06 898
原创 同步压缩-提取时频背脊线
同步压缩是一种在数字信号处理中常用的技术,它的目的是对信号进行压缩,同时保留信号中的时间结构信息。这种压缩方式非常适用于需要实时传输、存储和处理的信号,如音频、视频、传感器数据等。常用方法:小波变换(Wavelet Transform):小波变换在信号处理中被广泛应用,它能够将信号分解成不同尺度和频率的成分,从而允许对信号进行时频分析。通过选择适当的小波基函数和压缩算法,可以实现同步压缩。
2024-05-08 17:43:38 50
原创 mset-非线性状态评估算法
计算正常状态与观测状态的残差,设定一个阈值,通过比较残差与阈值的大小,估计是正常/异常。其中,用欧式距离代替 向量点乘。具体公式及推理过程见参考文献。
2024-05-08 09:31:54 26
原创 libsvm-简单使用
LibSVM 是一个广泛使用的支持向量机 (SVM) 库,由台湾大学的林智仁(Chih-Jen Lin)和台湾大学的林睿杰(Chih-Hung Hsu)开发。它提供了一个简单而强大的接口,用于训练和测试 SVM 模型,支持分类、回归和密度估计。以下是 LibSVM 的一些主要特点和优势:支持向量机的实现:LibSVM 实现了支持向量机算法,包括线性核函数、多项式核函数和径向基函数(RBF)核函数等,使用户能够在不同类型的数据集上进行分类、回归和密度估计。多种编程语言接口:LibSVM 提供了多种编程语言的接
2024-05-07 10:35:20 371
原创 【动手学深度学习】9.6 编码器和解码器
正如我们在 9.5节中所讨论的, 机器翻译是序列转换模型的一个核心问题, 其输入和输出都是长度可变的序列。为了处理这种类型的输入和输出, 我们可以设计一个包含两个主要组件的架构: 第一个组件是一个编码器(encoder): 它接受一个长度可变的序列作为输入, 并将其转换为具有固定形状的编码状态。第二个组件是解码器(decoder): 它将固定形状的编码状态映射到长度可变的序列。这被称为编码器-解码器(encoder-decoder)架构, 如 图9.6.1 所示。
2024-03-29 18:12:25 336
原创 【动手学深度学习-pytorch】 9.4 双向循环神经网络
将前向隐状态 和反向隐状态连接起来, 获得需要送入输出层的隐状态H在双向循环神经网络中,每个时间步的隐状态由当前时间步的前后数据同时决定。双向循环神经网络与概率图模型中的“前向-后向”算法具有相似性。双向循环神经网络主要用于序列编码和给定双向上下文的观测估计。由于梯度链更长,因此双向循环神经网络的训练代价非常高。双向层的使用在实践中非常少,并且仅仅应用于部分场合。例如,填充缺失的单词、词元注释(例如,用于命名实体识别) 以及作为序列处理流水线中的一个步骤对序列进行编码(例如,用于机器翻译)
2024-03-29 17:33:56 729
原创 【动手学深度学习-pytorch】-9.3深度循环神经网络
到目前为止,我们只讨论了具有一个单向隐藏层的循环神经网络。其中,隐变量和观测值与具体的函数形式的交互方式是相当随意的。只要交互类型建模具有足够的灵活性,这就不是一个大问题。然而,对一个单层来说,这可能具有相当的挑战性。之前在线性模型中,我们通过添加更多的层来解决这个问题。而在循环神经网络中,我们首先需要确定如何添加更多的层, 以及在哪里添加额外的非线性,因此这个问题有点棘手。事实上,我们可以将多层循环神经网络堆叠在一起, 通过对几个简单层的组合,产生了一个灵活的机制。特别是,数据可能与不同层的堆叠有关。
2024-03-29 17:02:47 529
原创 【动手学深度学习-pytorch】9.2长短期记忆网络(LSTM)
在初始化函数中, 长短期记忆网络的隐状态需要返回一个额外的记忆元, 单元的值为0,形状为(批量大小,隐藏单元数)。因此,我们得到以下的状态初始化。实际模型的定义与我们前面讨论的一样: 提供三个门和一个额外的记忆元。请注意,只有隐状态才会传递到输出层, 而记忆元不直接参与输出计算。长短期记忆网络,包含三个门:输入门、忘记门和遗忘门。其中遗忘门用于重置单元的内容,通过专用的机制决定什么时候记忆或者忽略状态中的输入。长短期记忆网络的隐藏层输出包括“隐状态”和“记忆元”。
2024-03-29 16:47:27 935
原创 8.6 循环神经网络的简洁实现
高级API提供了循环神经网络的实现。我们构造一个具有256个隐藏单元的单隐藏层的循环神经网络层rnn_layer。事实上,我们还没有讨论多层循环神经网络的意义(这将在 9.3节中介绍)。现在仅需要将多层理解为一层循环神经网络的输出被用作下一层循环神经网络的输入就足够了。设置一个单层 256个隐藏单元的神经网络 rnn单隐藏层, 256个隐藏单元隐藏层数定义:隐藏层数指的是神经网络中介于输入层和输出层之间的层级数量。作用:增加隐藏层数可以帮助神经网络学习更复杂的模式和特征,提高模型的表示能力。
2024-03-29 15:00:53 598
原创 【动手学深度学习-pytorch】8.5 循环神经网络的从零开始实现
转换输入的维度, 以获得形状为(时间步数,批量大小,词表大小)的输出,这将使我们能够更方便地通过最外层的维度, 一步一步地更新小批量数据的隐状态。>当训练语言模型时,输入和输出来自相同的词表循环神经网络模型通过inputs最外层的维度实现循环, 以便逐时间步更新小批量数据的隐状态H最外层为时间步,与上面的转置相关输出 output 和隐状态我们可以看到输出形状是(时间步数批量大小,词表大小), 而隐状态形状保持不变,即(批量大小,隐藏单元数)。预热(warm-up)期。
2024-03-29 10:58:18 691
原创 pyrhon 中__call__的用法
一般情况下类方法的调用是通过先创建类对象再通过a.b()的方式来调用,但是如果类中只有一个方法或者一个方法的使用频率非常高,那么就可以为这个方法命名为__call__来简化调用。
2024-03-29 10:50:34 314
原创 8.4 循环神经网络
对隐状态使用循环计算的神经网络称为循环神经网络(RNN)。循环神经网络的隐状态可以捕获直到当前时间步序列的历史信息。循环神经网络模型的参数数量不会随着时间步的增加而增加。我们可以使用循环神经网络创建字符级语言模型。我们可以使用困惑度来评价语言模型的质量。
2024-03-28 14:34:25 358
原创 循环神经网络之语言模型和数据集
读取长序列的主要方式是随机采样和顺序分区。在迭代过程中,后者可以保证来自两个相邻的小批量中的子序列在原始序列上也是相邻的。在给定这样的文本序列时,语言模型(language model)的目标是估计序列的联合概率。齐普夫定律支配着单词的分布,这个分布不仅适用于一元语法,还适用于其他。通过拉普拉斯平滑法可以有效地处理结构丰富而频率不足的低频词词组。元语法通过截断相关性,为处理长序列提供了一种实用的模型。长序列存在一个问题:它们很少出现或者从不出现。语言模型是自然语言处理的关键。
2024-03-28 10:58:11 354
原创 循环神经网络之文本预处理
来源: 动手学深度学习对于序列数据处理问题,我们在 8.1节中 评估了所需的统计工具和预测时面临的挑战。这样的数据存在许多种形式,文本是最常见例子之一。例如,一篇文章可以被简单地看作一串单词序列,甚至是一串字符序列。本节中,我们将解析文本的常见预处理步骤。这些步骤通常包括:1.、将文本作为字符串加载到内存中。2.将字符串拆分为词元(如单词和字符)。3.建立一个词表,将拆分的词元映射到数字索引。
2024-03-27 16:30:59 266
原创 时频分析实战-时频脊线
此示例说明如何执行和解释基本的时频信号分析。在实际应用中,许多信号是非平稳信号。这意味着其频域表示(其频谱)随时间变化。该示例讨论使用时频方法相对于信号的频域或时域表示的优势。它回答了一些基本问题,例如:信号中何时会出现特定频率分量?如何提高时间或频率分辨率?如何锐化分量的频谱或提取特定模式?如何在时频表示中测量功率?如何可视化信号的时频信息?如何在感兴趣信号的频率成分里找到间歇性干扰?也可以使用连续小波变换来执行信号的时频分析。
2024-03-15 10:02:58 111
原创 小波散射网络及其应用
小波变换的散射算子(Scattering operators)[41],能提取出原始信息在弹性形变、仿射变换中。年后,Mallat 又提出了基于小波变换的小波散射网络这一新型网络结构,该网络主要是基于。和低频特征信息,再将低频信息进行非线性平稳变换以保证其形变不变性[42],利用平均算子。小波变换和非线性变换的过程逐步得到原始信息的特征[43]。小波散射网络首先将原始信息通过预先设定好的小波滤波器,分层次提取高频。将高频信息转化为低频信息,期间丢失的高频信息通过散射算子恢复,通过不断地循环进行。
2024-03-11 18:29:15 353
原创 认识小波-DWT CWT Scattering
大家好。在本次介绍性课程中,我将介绍一些基本的小波概念。我将主要使用一维示例,但相同的概念也可以应用于图像。首先,我们回顾一下什么是小波。现实世界的数据或信号经常表现出缓慢变化的趋势或瞬态波动。另一方面,图像具有被边缘或对比度突然变化中断的平滑区域。**这些突然的变化通常是数据中最有趣的部分,无论是在感知上还是在它们提供的信息方面。傅里叶变换是数据分析的强大工具。然而,它并不能有效地表示突变。**其原因是傅立叶变换将数据表示为正弦波之和,这些正弦波在时间或空间上不局域化。这些正弦波永远振荡。
2024-03-06 14:22:18 72
原创 数字信号处理教程学习笔记1-第2章时域中的离散信号和系统
模拟信号和数字信号分别是啥样的,有啥区别模拟信号: 连续变化的信号,其数值在一段时间内可以无限制地取任意值数字信号:离散的信号,它的数值在一段时间内只能取有限个特定值第一章习题1.1 设一组电压值为 x = [- 0.3,0.5,1,-2,3,-4],经过一个量化步长为 0.15 的量化装置,求量化后的整数和它们对应的量化电压,并求出其绝对误差和相对误差。
2024-01-12 18:37:11 176
原创 P122 神经网络压缩Network compression-purning
解决办法:修剪掉的weight ,设为0 ,这样能够进行GPU计算。为解决这个问题,进行微调,每次只减一点参数,重复多次。使得最后修剪后的模型跟原来的模型差别不大。问题:进行过修剪后不规则的网络,pytorch难以实现,也无法进行矩阵计算,在GPU上无法加速。大的network 可以看作包含很多小的network。为什么不直接train 小的 network。大乐透假说是真是假,未来等待更多的验证。在 边缘设备上跑时,模型太大,跑不动。删减以后,正确率有影响会下降。为什么大的好train?
2024-01-12 11:14:40 230
原创 P114 增强学习 RL ---没懂,以后再补充
sample: 如 70% 的概率向左 20%的概率向右 10% 的概率开火不是left 分数最高,就直接向左。而是随机sampletotal reward (return) R 就是优化的目标,分数越高约好。
2024-01-11 18:33:57 97
原创 domain adapation
假设网络一共十层,前5层的作用是 feature extractor, 后5层的作用是 classifier。目标,通过extractor 后,黑白数字 和彩色数字的 特征分布相似。分布也不一样,比如 source domain 是黑白,target domain 为彩色。使用source data 训练一个模型,然后使用 target data 微调该模型。假设测试资料和训练资料分布不一样, 训练为黑白数字,测试为彩色数字时,识别率很低。注意不能过拟合,只能对一些target data 进行训练。
2024-01-09 16:30:22 336
原创 P101 adversial attack 对抗攻击- 体现AI的不可靠
x 与 x0 在一定误差内,两者之间的loss 越大越好对抗攻击是指利用计算机系统或人工智能模型的弱点,通过修改输入数据,使得系统产生错误的结果或分类,而这种修改又对人类观察者来说几乎是无法察觉的。对抗攻击的目的在于欺骗或误导机器学习模型,使其在处理经过微小修改的输入数据时产生错误的输出。关键点:攻击类型:梯度攻击: 通过计算模型对输入数据的梯度,并对输入数据进行微小的修改,使模型产生错误的分类或预测。白盒攻击: 攻击者完全了解目标模型的结构和参数。
2024-01-09 15:44:59 366
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人