Sunrise

`长路漫漫,唯剑作伴`


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

PyTorch的自动微分

发表于 2023-02-11 | 分类于 pytorch

PyTorch的自动微分(autograd)

计算图

计算图是用来描述运算的有向无环图
计算图有两个主要元素:结点(Node)和边(Edge)
结点表示数据,如向量、矩阵、张量
边表示运算,如加减乘除卷积等

用计算图表示:y = (x + w) (w + 1)
令 a = x + w,b = w + 1
则 y = a
b

用计算图来表示这一计算过程:

使用计算图可以更方便的求导

阅读全文 »

Pytorch中的张量学习

发表于 2023-02-04 | 分类于 pytorch

关于Pytorch中的张量学习

张量的概念和创建

张量的概念

Tensor是pytorch中非常重要且常见的数据结构,相较于numpy数组,Tensor能加载到GPU中,从而有效地利用GPU进行加速计算。但是普通的Tensor对于构建神经网络还远远不够,我们需要能够构建计算图的 tensor,这就是 Variable。Variable 是对 tensor 的封装,主要用于自动求导。

  • data:被包装的tensor
  • grad:data的梯度
  • grad_fn:创建tensor的function,是自动求导的关键
  • requires_grad:指示是否需要梯度
  • is_leaf:指示是否是叶子节点(用户创建的张量)
阅读全文 »

Git简单使用

发表于 2022-12-24 | 分类于 Git

Git简单使用

git初始化操作

pwd:显示当前目录

git init:把这个目录变成git可以管理的仓库

git clone: 从现有 Git 仓库中拷贝项目(类似 svn checkout)。

克隆仓库的命令格式为:

1
git clone <repo>

如果我们需要克隆到指定的目录,可以使用以下命令格式:

1
git clone <repo> <directory>

参数说明:

  • repo:Git 仓库。
  • directory:本地目录。

git config --list:显示当前的git配置信息

编辑 git 配置文件:

1
git config -e    # 针对当前仓库

或者:

1
git config -e --global   # 针对系统上所有仓库

设置提交代码时的用户信息:

1
2
git config --global user.name "runoob"
git config --global user.email test@runoob.com

工作区、暂存区和版本库

阅读全文 »

反爬(九)

发表于 2022-12-05 | 分类于 爬虫

反爬九

目标网站,本次破解的网站是一个信用地方网站,主要获取的是行政处罚数据,该网站的混用了DES3、RSA、SHA256和MD5加密,比较具有代表性,但是对于有经验的爬虫工程师来说本身难度不高,如果缺乏经验可能会多走一些弯路。

查看网络请求可以发现其post请求的参数被加密了

阅读全文 »

Python DES3加解密

发表于 2022-12-05 | 分类于 python编程

python实现DES3加密

des加密,是一种对称加密算法,一种比较传统的加密方式;3DES(又称Triple DES),是进行了三重数据加密,即:每个数据块进行了三次DES加密算法,故比DES加密更为安全,更难破解。

DES加密的密钥长度为8,而DES3的密钥长度为24.

下面的代码实现是DES3,而DES加密只要把相关DES3的部分替换为DES即可,DES包的导入和方法调用与DES是一样,但是需要注意密钥长度。

与AES的加密实现方式基本相同,区别点在于:

  1. DES3需要把待加密文本补齐为8的倍数,AES需要把待加密文本补齐为16的倍数;
  2. DES3密钥长度为24,AES的密钥长度为32。
阅读全文 »

NER学习和实践阶段性总结

发表于 2022-11-26 | 分类于 自然语言处理

NER学习和实践阶段性总结

前面一段时间我针对NER进行了系统的学习,并借助UER-py对开庭公告进行了实体抽取,整个项目收获颇丰,前面本身已经对学习和实践过程进行了记录,具体细节参考前面的文章。

对NER技术不太了解的同学可以参考前面我翻译的一篇NER论文综述。

这篇文章主要内容包括:

  1. 针对网络模型以及其中涉及的技术点进行一定概述;
  2. 针对上篇NER综述进行一定的补充;
  3. 结合自己所擅长领域,思考后续可以借助NER来做的一些研究和实践。
阅读全文 »

一篇基于深度学习的命名实体识别技术的研究报告

发表于 2022-11-19 | 分类于 自然语言处理

一篇基于深度学习的命名实体识别技术的研究报告

本篇文章主要是自己刚接触NER领域时,研读这篇《 A Survey on Deep Learning for Named Entity Recognition 》NER综述论文时翻译的中文版,这篇综述时间是2020年,可能近两年的部分成果暂未包含,很多内容是通过百度翻译直接翻的,部分内容进行了一定的调整。有少部分内容省略了,具体可以参考原论文,所有涉及的文献引用也请参考原论文。

Abstract

命名实体识别(NER)是从属于预定义语义类型(如人、地点、组织等)的文本中识别固定指示符的任务;NER常作为问答系统、文本摘要和机器翻译等许多自然语言应用的基础;早期的NER系统通过消耗人力设计特定领域的特征和规则取得了巨大的成功,近年来,由连续实值向量表示和通过非线性处理的语义合成所支持的深度学习已被应用于NER系统,并产生了最先进的性能。在本文中,我们全面回顾了现有的面向NER的深度学习技术。 我们首先介绍现有的NER资源,包括已标记的NER语料库和现成的NER工具。然后,我们将NER现有的工作分为三类来进行系统的介绍:输入的分布式表示、上下文编码器和标记解码器。接下来,我们调研了在新的NER问题设置和应用上最具代表性的深度学习技术。最后,我们向读者介绍了NER系统面临的挑战和未来的研究方向。

阅读全文 »

使用UER进行开庭公告命名实体识别-续3

发表于 2022-11-05 | 分类于 自然语言处理

使用UER进行开庭公告命名实体识别-续3

模型训练和测试

未使用CRF层

将上次的问题全部解决之后,并且增加了一些特定法院名称和案由的训练数据,并且兼容了劳动仲裁开庭公告的抽取,模型的训练日志如下:

1
2
3
4
5
6
7
8
9
10
[2022-10-15 09:09:03,601 INFO] Epoch id: 5, Training steps: 1900, Avg loss: 0.000
[2022-10-15 09:09:25,614 INFO] Epoch id: 5, Training steps: 2000, Avg loss: 0.001
[2022-10-15 09:09:47,766 INFO] Epoch id: 5, Training steps: 2100, Avg loss: 0.000
[2022-10-15 09:10:09,830 INFO] Epoch id: 5, Training steps: 2200, Avg loss: 0.001
[2022-10-15 09:10:31,829 INFO] Epoch id: 5, Training steps: 2300, Avg loss: 0.001
[2022-10-15 09:10:53,881 INFO] Epoch id: 5, Training steps: 2400, Avg loss: 0.001
[2022-10-15 09:11:15,982 INFO] Epoch id: 5, Training steps: 2500, Avg loss: 0.001
[2022-10-15 09:11:38,139 INFO] Epoch id: 5, Training steps: 2600, Avg loss: 0.000
[2022-10-15 09:13:33,811 INFO] Report precision, recall, and f1:
[2022-10-15 09:13:33,812 INFO] 0.994, 0.994, 0.994

测试的结果如下:

1
2
3
4
5
6
correct/total: 2567/2600
accuracy: 0.9873076923076923
correct/total: 2570/2600
precision: 0.9884615384615385
correct/total: 2567/2600
precision: 0.9873076923076923

阅读全文 »

使用UER进行开庭公告命名实体识别-续2

发表于 2022-10-29 | 分类于 自然语言处理

使用UER进行开庭公告命名实体识别-续2

再接着上篇博客,本次依然采用自己生成训练数据的方式来训练,经过上一次的实验和优化,本次生成的训练数据标注错误的问题将会大大减少,因为很多实体是根据已有数据进行收集的,没有耗费大量的人力去逐条核验,难免会存在噪音,这一次修复了上篇中存在的各种噪音问题,并且还做了较多优化,具体效果如何,继续来看看吧。

优化方案

这一次在上一次的训练结果上做了以下优化点:

  1. 修复了目前见过的在数据集生成方面的噪音;
  2. 生成的数据种类大幅增加,增加了6种模板;
  3. 大幅度减少每种模板生成的数量,防止过拟合;
  4. 通过在生成的文本中增加一定的冗余数据,来让模型学会识别哪些信息并不是我们需要的实体;
  5. 生成了一定比例当事人之间没有任何分隔符号的数据,以此来进一步提升训练模型的抽取能力;
  6. 修复了一个“意料之外,又在情理之中”的问题,这个问题下面会说明;
  7. 修复了有空白字符开头的句子预测实体的位置索引不准确的问题。
阅读全文 »

使用UER进行开庭公告命名实体识别-续1

发表于 2022-10-20 | 分类于 自然语言处理

使用UER进行开庭公告命名实体识别-续1

接着上篇博客,这次我采用自己生成训练数据的方式来再次训练,自己生成的训练数据不会存在标注错误的问题,也可以尽可能的保证各种实体的类别尽可能的丰富。

生成训练数据

生成训练数据的程序是这里比较核心的模块,且考虑到公司的知识产权(因为是我在公司工作的时期开发的),就不做公开展示了。

不过这里可以大概的说下基本思想:
首先根据开庭公告非结构化文本的行文规律,总结出数十套模板,这里给出一套模板:

阅读全文 »
1234…12
chenxi

chenxi

120 日志
12 分类
224 标签
Links
  • Docle
  • Swift
© 2025 chenxi
由 Hexo 强力驱动
|
主题 — NexT.Pisces v5.1.4