
深度学习
文章平均质量分 79
V丶Chao
记录自己的学习过程,时常反思,时常进步
展开
-
CRF条件随机场学习记录
那么结合发射概率和转移概率这些概念,以及CRF所做的假设,或者说其模型公式中的相关限制,依然利用词性标注这个问题来解释:每个单词的词性,他不仅仅和当前的单词有关,他还和前一个单词的词性有关。注意,他是和上一个单词的词性有关。所以建模的时候要干的事情到底是什么?也就是同时考虑当前单词的属性,同时也要考虑上一个标注结果从而输出一个序列解决。相应的,特征函数的写法也就是fXili−1lifXili−1liiii指代当前处理单词的位置,lll指标记结果。原创 2024-01-30 18:23:45 · 1142 阅读 · 0 评论 -
Torch同时训练多个模型
20230302。原创 2023-03-02 09:55:26 · 1744 阅读 · 0 评论 -
Torch单独层赋值
20230227 -原创 2023-02-27 20:12:57 · 596 阅读 · 0 评论 -
Keras默认权值初始化方式
20230117 -在最初使用Keras进行神经网络编程的时候,除了设置神经元个数,层数,或者激活函数之后,基本上对神经网络内部就不怎么管了,所以最后很多参数都是默认的。这种情况一般遇到的数据集问题,都能轻易解决。一般不是层数非常深的神经网络,偶尔也遇到过梯度爆炸和消失的问题。但最近遇到一个数据集,默认的情况下效果也还行,但希望更进一步。就希望通过权值初始化的角度来进行改进。原创 2023-02-17 14:56:04 · 809 阅读 · 0 评论 -
keras框架下的VAE的代码撰写
20221117 -原创 2022-11-17 15:17:40 · 916 阅读 · 0 评论 -
Pytorch与keras的差别
20220825 -在前期,一直是使用keras进行深度学习相关的编程,但后来由于学习各种其他源码的缘故,也学习了pytorch的相关方式。使用之后发现,有时候如果对各种损失函数进行深层次的编写的时候,采用pytorch会更方便。因此便查阅了两者的区别和优势,具体见文章[1]。但是在介绍别人文章的时候,先简单说一下自己的感受。原创 2022-08-25 15:00:29 · 2843 阅读 · 0 评论 -
Pytorch学习
202206026 -最近在看开源代码论文的时候,看到很多作者都是采用torch来进行编码,但是我平时都是使用keras进行编码,所以我自己也准备学习一下。但是因为平时学习的时候,都是有问题就查询一下,毕竟再完整系统的学习太浪费时间了,我也只是想看到作者代码而已。所以这篇文章就来记录下自己学习的过程。1)Understanding PyTorch with an example: a step-by-step tutorial这篇文章算是我学习过程中,第一篇比较基础的文章了,算是非常全面了,通过这篇文章,差原创 2022-06-26 16:15:07 · 348 阅读 · 0 评论 -
深度学习学习率的调整
20220626 -最近在做实验的时候,由于结果一直都不怎么好,我就在想是不是过拟合了。那就算不是过拟合,是不是根本没有学习到数据集中的信息呢?想到了这些事情,我就直接把测试集的效果跟随着训练过程直接打印出来了。(当然,实际过程中,肯定是不该以这个过程来作为最终的评判目标,但是在检验阶段还是很有用的)通过查看这个过程就发现,随着训练过程,在前期,的确是发现检验指标在上升,这个过程是很正常的,毕竟前期还是能够学习到一些信息的。(实验过程采用的是自编码器进行异常检测)。但是达到了一定程度之后,大部分时候学习到2原创 2022-06-26 15:53:58 · 1241 阅读 · 0 评论 -
GAN网络的重新学习的一些内容记录
20211130 -(本篇文章属于自己在学习过程中的一些内容记录,正是因为对这些内容不理解,才有了这篇文章,同时会记录一些自己的思考,对与错请仔细斟酌。)0. 引言经过了一年多,上次专门研究GAN是去年的时候,学习了基础的原理,也记录了一些文章;但是当时并没有使用代码跑过,比如简单的GAN或者WGAN这种。各种乱七八糟的文章在吹,什么有了这个,再也不用怕什么什么了。。。无话可说。今年八月份的时候,我就弄过这种内容,当时也是为了学习对抗自编码器才学习了一些内容。但是那个时候,我去复现一些GAN的内容的原创 2021-11-30 22:21:51 · 2751 阅读 · 0 评论 -
自动编码器的相关内容
0. 引言对于自动编码器的内容,平时仅仅是使用最简单的自编码器,就是隐藏层或者说中间层比输入层的维度小,这样的方式,相对来说比较简单。以前的时候,也知道比如说降噪自编码器,或者说稀疏自编码器这类,但都没有关注过。最近翻阅了一些相关的文章,例如[1],对自编码器中一些比较有名的方式进行了介绍。本篇文章就针对其中的某些类别展开具体的研究。1. 稀疏自编码器在文章[1]中对稀疏自编码器有所介绍,第一感觉跟添加了Dropout差不多。为了更深入的理解这部分内容,参考[1][自编码器:理论+代码]:自编码器原创 2021-09-09 15:06:38 · 391 阅读 · 0 评论 -
对抗自编码器的python代码实现
20210813 -0. 引言最近在实现对抗自编码器的代码,想法是从最简单的模板开始。同时为了能够先找到点感觉,先看看怎么处理MNIST数据。1. 代码示例针对对抗自编码器的代码,找到了两份代码,分别是tensorflow实现和keras实现。其实最开始是弄的keras版本,但是判别器的判别准确率基本上一直稳定在100%,就挺奇怪的。所以,就有弄了个tensorflow来看看,不过这个问题还是没有解答。先把整理代码的过程来记录下,因为代码并不能直接跑。代码地址分别位于[1]和[2]。1.1 Ker原创 2021-08-13 15:01:05 · 870 阅读 · 0 评论 -
当神经网络的模型还不如决策树的效果好
20210524 -0. 引言有时候做实验,一般采用比较简单的分类算法来测试一下这个数据怎么样,比如决策树,随机森林,因为代表编码比较简单,直接sklearn几行代码就完事了。但是最终在测试神经网络的时候,经常性的发现,神经网络的效果还不如决策树好。其实这个结论,我也不是非常惊讶,我就是有点好奇是为什么。现在各种论文里大肆鼓吹神经网络,深度学习,当然对于图像,语音等领域,神经网络提升的效果必然是非常好的。但是,有时候在有些领域,也有人为了发论文来使用神经网络,实际上他的效果用普通的机器学习算法也能达到原创 2021-05-24 21:21:51 · 3080 阅读 · 9 评论 -
LSTM的输入与输出
2020/02/07 -今天重新开启代码的测试过程,发现对于LSTM的输入输出还是不够理解,所以这部分今天需要再把这部分内容弄一下。2020/02/07 -我觉得我重新编写这部分代码之后,反而这部分内容有些迷惑了。对这部分内容的整体架构有些不理解。我现在疑惑的一个地方就是,如果输入和输出的步长不相等怎么办?我本来的时候是用dense的方式,后来看了一下好像不对,就是timedistri...原创 2020-02-08 20:53:56 · 5461 阅读 · 0 评论 -
深度学习Keras保存模型(当包含自定义层时)
20210409 -0.引言一般来说,如果没有什么特殊情况,那么在进行保存模型的时候,通过调用一些api进行保存即可,在文章《深度学习的基础知识与问题汇总》简单介绍了一种方式,直接保存模型,并重新载入。但是在今天的实验中,出现的需求就是,如果定义的模型中,包含了用户自定义的层就会报错,具体情况见[1],在保存模型的时候没有问题,但是载入时就会报错。简单说明一下实验环境python 3.6.8tensorflow-gpu 2.3.1Keras 2.4.31. 加载模型报错:未定义层在[1]原创 2021-04-09 15:56:07 · 2069 阅读 · 2 评论 -
深度学习实验结果可复现所需设置 - 随机数等内容设置
20210408 -0. 引言最近在进行深度学习相关的实验,但是发现虽然数据每次都一样,最后的实验效果却不是很一样(并非仅仅测试准确率)。在实验过程中,发现是随机数设置的问题。但是已经设置了一些,后来发现其实远远不仅仅是这些,还有一些其他的因素。本人实验环境如下:python == 3.6.9Keras == 2.4.3tensorflow-gpu == 2.3.11. 相关搜索1.1 个人博客在文章[1]中,提供了使用keras时应该进行的相关代码结构,在使用Keras时,主要要进行的原创 2021-04-08 16:14:56 · 1622 阅读 · 6 评论 -
度量学习相关 - 简单记录(代码和阅读材料)
20210312 -0. 引言(本人非专业人士,仅仅记录自己的简单理解,本人所引用代码或文章并未经过实际验证,仅仅参考其中主要思想,如有报错请自行解决)度量学习会在神经网络的训练中,加入或者直接使用相似度作为目标。之前在上一门课程的时候,正好阅读过一篇与此相关的顶会文章,当时对其有了简单理解。简单说,就是讲相似度比较加入到神经网络的结构或者训练目标中。本篇文章用来记录一些相关的内容。1. 孪生网络(对比损失)1.1 直接代码本部分参考文章[1]进行记录。1.1.1 大致原理在文章[1]中,通原创 2021-03-12 11:08:00 · 1213 阅读 · 0 评论 -
当神经网络的性能不好怎么办?
20210209 -0. 引言本次写这篇文章是因为最近在训练的过程中,遇到了这个问题,而遇到这个问题其实也挺奇葩。因为之前的时候,也遇到过,但是那时候没有这样想,没有往这个方向想也是因为现象不同。因此也因为这个问题让我反思。首先来说一下具体现象。今天在进行调试神经网络的时候,简单修改了层数和神经元个数,一开始没当回事,但是在重新测试的时候,却发现性能大不如从前,最后损失值稳定在了一个值。这个问题很简单,没什么大不了的,但是如果是以前的话,我就会觉得,肯定是这个数据不太好(因为之前遇到过这种情况原创 2021-02-09 21:34:27 · 3324 阅读 · 2 评论 -
设置GPU及显存大小
20210128 -引言之前搜索过设置GPU和显存大小的方式,但是升级了新的版本的keras以及tensorflow,导致之前的代码失效了,这里记录一下。本质上,就是版本更换的原因,很多api可能被取消,或者改了别的。原始代码import osimport tensorflow as tffrom keras.backend.tensorflow_backend import set_sessiondef set_up_gpu_environment(gpu_devices_num = 2原创 2021-01-28 22:26:41 · 4017 阅读 · 6 评论 -
tensorflow 2.0的版本兼容api(兼容1.x)
0. 引言平时经常在github上使用一些别人的代码,基本上就是直接扒拉过来就开始跑了。不过,经常遇见那种版本不兼容的问题,提示就是没有某个模块,或者没有某个API。本质上是因为tensorflow在发展过程中,很多api已经被取消了。其实在日常的编码过程中,也会遇到这种提示,某个模块或者某个函数将在未来中被取消,请更换某个api的提示。1. 问题描述本次实验是基于开源的char-rnn来进行,一开始选择了star比较高的版本[1],但是这个版本太老了,连contrib.rnn都不能满足,其要求ten原创 2020-11-09 10:36:20 · 1797 阅读 · 2 评论 -
Docker部署容器使用GPU并搭建jupyter环境
2020/07/02 -引言实验室的深度学习服务器的环境,因为一直是公用的,各种库总是被人搞得乱七八糟;因为机器上很多个版本的python,我也不知道具体该怎么弄。现在的情况,说是给按照给学生分配jupyter的形式,但实际上有人有密码,有时候也会出现各种库被动。所以这里我就想着能不能实现深度学习库的容器化。而且,我觉得一些提供深度学习服务的厂商,应该也是这种部署方式把,毕竟这种比较方便。那...原创 2020-07-02 10:33:12 · 1997 阅读 · 0 评论 -
Centos8安装英伟达显卡驱动并通过docker部署深度学习环境
20201107 -0. 引言之前的时候,在实验室的深度学习服务器上安装深度学习的环境,部署的文章在《Docker部署容器使用GPU并搭建jupyter环境》,当时很多东西都不是很懂,但是基本上匹配上了版本就没什么问题。但是因为一些原因,底层的驱动被人搞崩了,导致很多命令直接失效了,完全就是崩溃的效果。所以只能选择重装。本次重装,操作系统选取centos8,物理机上还是原来的三块Tesla p100,显卡驱动升级为450,暂时没有必要使用更高版本。本次同样采用docker的部署形式,仅仅需要在底层宿主原创 2020-11-07 19:50:07 · 5019 阅读 · 1 评论 -
论文阅读 - RNN生成文本《Generating Sequences With Recurrent Neural Networks》
20201101 -0. 引言昨天在整理论文的时候,看到了这篇论文《Generating Sequences With Recurrent Neural Networks》,实际上这篇论文我很早就看了,只不过当时没有具体来理解。昨天仔细看了看,发现他的这个网络结构图,跟我之前一致理解的那种形式不太一样,挺奇怪的。1. 其使用的网络结构图这里无法理解的地方,就是为什么他的这个输入和多个隐藏层的都有关系呢?而且看下面的注释,并不是逻辑上的一个演示作用,而是实际的物理连接。那么基于这部分疑惑,我去搜索了原创 2020-11-01 10:12:41 · 2237 阅读 · 1 评论 -
从GAN到WGAN及WGAN-GP
20200910 -0. 引言最近看了PassGAN的代码,他是使用了WGAN-GP的代码作为GAN的框架,来进行密码生成,由此引出了对GAN的学习。在GAN的研究中,有一个方向就是研究如何使GAN更加稳定的训练。在此之中,WGAN和WGAN-GP算是比较好的解决方案。为了弄明白这些东西,也是花费了很长时间,主要是因为这部分都是数学公式的内容,而我这种半吊子也不是搞数学的,也不是专门搞人工智能的,就顺着他们的思路弄明白是怎么回事就好了,对于数学原理还是看看就好了。本篇文章主要是参考了几篇文章,然后结原创 2020-09-11 08:23:34 · 1674 阅读 · 0 评论 -
GAN的编写 - tensorflow形式(tensorflow与GAN同学习,重点分析训练过程)
20200901 -0. 引言之前的时候对keras框架编写的GAN网络进行了介绍《GAN的学习 - 训练过程(冻结判别器)》,但是发现去查看源代码的时候,经常有使用tensorflow框架编写的代码,所以寻思着把tensorflow框架也学一学,但是发现很多内容与keras是不一样的,例如可以自己定位网络参数,训练过程也不仅仅是fit那么简单;在涉及GAN时,更不需要利用trainable这种属性来实现判别器的冻结。本篇文章学习一下利用tensorflow来进行GAN的编写。1. GAN的代码编写原创 2020-09-02 15:41:05 · 2228 阅读 · 2 评论 -
GAN的学习 - 实际的训练过程
20200824 -0. 引言前面的文章中,了解了GAN的基础知识,同时介绍了实际代码(如何利用GAN来生成MNIST的数据),前面两篇文章中,进行了具体的基础知识铺垫,但是我在实际的训练过程中,也感受到了GAN训练不稳定。本篇文章从这个角度来入手,来讲讲训练过程。前文回顾:1. GAN的训练过程1.1 GAN如何训练在前文中提到GAN是通过训练两个神经来实现生成模型,其中两个模型分别是生成器模型和判别器模型。在训练过程中,判别器将尽可能提高识别真数据和假数据的能力,而生成器将尽可能生成真的数据原创 2020-08-24 21:10:09 · 11220 阅读 · 2 评论 -
GAN的学习 - 训练过程(冻结判别器)
20200823 -0. 引言在前一篇文章《GAN的学习》中简单介绍了构造GAN的过程,包括如何构造生成器和判别器,如何训练GAN等,但是其中存在一个问题,就是在训练过程中怎么保证判别器不更新权值。下面针对这部分进行具体的描述。1. 整体的流程...原创 2020-08-23 09:52:55 · 13257 阅读 · 0 评论 -
GAN的学习 - 基础知识了解
20200818 -引言最近看到了一些论文,是GAN在密码生成(PassGAN)、DGA检测(DeepDGA)这些论文,所以希望深入了解一下GAN的内容。之前的时候,只是直到GAN是什么东西,通过训练两个神经网络,然后相互促进来实现检测的目标,不过没有深入了解过。这里根据刚刚阅读的一篇文章[1]来记录下学习的内容。大部分内容是文章[1]的原始内容,加上自己的理解。GAN的结构不管是什么网站,只要一介绍GAN就会告诉你:**GAN由两个部分组成,一个部分是生成器,一个部分是判别器。**那么具体,他们原创 2020-08-19 08:45:05 · 2494 阅读 · 0 评论 -
LSTM文本生成(单词级别)
20200818 -引言前面文章中,介绍了字符级别的文本生成《LSTM生成文本(字符级别),在字符级别的生成过程中,利用滑动窗口的形式来持续生成文本。本文中介绍看到的另外一篇基于单词的生成形式。LSTM文本生成本篇文章中,主要参考了kaggle上的一篇文章[1],在模型中,使用了embedding层,然后输入其实是句子。但是感觉他的代码部分并不是非常友好,也可能是我对模型的使用有些忘记了。数据预处理def generate_padded_sequences(input_sequences):原创 2020-08-18 11:33:43 · 1402 阅读 · 2 评论 -
LSTM生成文本(字符级别)
20200817 -引言在网上看到过一些利用深度学习来生成文本的文章,不管生成宋词也好,生成小说也好,各种各样,都是利用深度学习的模型来生成新的东西。之前的时候,我也一直觉得,他们这种生成方式,应该就是记忆性的东西,他并没有真正的从语义的角度上理解这个文章。当然,我自己也是才疏学浅,本身就不是专门搞这种东西的人。本篇文章中,记录一下我在网上看到的一篇利用LSTM生成文本的文章。需要注意的几个点是1)训练过程中,输入的是什么2)根据输出,预测的又是什么3)最后输出的内容是否可读,又是否有意义,是否原创 2020-08-17 21:09:38 · 1603 阅读 · 0 评论 -
深度学习的基础知识与问题汇总
20200813 -引言这里记录一下深度学习使用过程中的一些细节的地方。多分类时预测过程最近发现了一个比较不错的网站[2],记录了很多关于kera的基础内容,有时间可以好好看看。问题1. 多分类时对于二分类时,最后一层只需要一个神经元,也就是Dense(1)即可;而多分类问题时,需要Dense(classes)。同时,还需要注意,使用的损失函数,二分类是‘binary_crossentropy’,而分类时需要采用’categorical_crossentropy’。另外需要注意的问题原创 2020-08-13 22:04:18 · 975 阅读 · 0 评论