![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
日常随记
J_Xiong0117
一枚终生学习的算法工程师
展开
-
Docker技术随记(九):服务镜像本地测试脚本
服务镜像本地测试脚本。原创 2023-04-20 09:36:34 · 127 阅读 · 0 评论 -
【日常笔记】20230113——获取python工程根目录路径
获取python工程根目录路径原创 2023-01-13 10:36:53 · 309 阅读 · 0 评论 -
图神经网络(一):综述
图神经网咯综述原创 2022-08-04 17:44:44 · 6056 阅读 · 2 评论 -
动手学深度学习PyTorch(六):卷积神经网络
卷积神经网络原创 2022-07-20 18:59:16 · 1393 阅读 · 0 评论 -
动手学深度学习PyTorch(五):深度学习计算
pytorch深度学习计算原创 2022-07-19 17:08:53 · 531 阅读 · 0 评论 -
动手学深度学习PyTorch(四):多层感知机
多层感知机pytorch代码原创 2022-07-15 13:56:07 · 283 阅读 · 0 评论 -
动手学深度学习PyTorch(三):softmax回归
softmax回归实现原创 2022-06-15 11:26:46 · 183 阅读 · 0 评论 -
动手学深度学习PyTorch(二):线性回归
线性回归实现代码原创 2022-06-14 18:40:20 · 137 阅读 · 0 评论 -
动手学深度学习PyTorch(一):数据操作
在深度学习中,我们通常会频繁地对数据进行操作。作为动手学深度学习的基础,本节将介绍如何对内存中的数据进行操作。原创 2022-06-14 15:43:23 · 1221 阅读 · 0 评论 -
通用信息抽取UIE论文笔记
一.研究背景与动机信息抽取目的信息抽取旨在从非结构化的自然语言文本中抽取出结构化的信息。主要任务命名实体识别关系抽取事件抽取观点抽取主要设置全监督低资源少样本零样本作用场景医疗金融法律美业农业教育信息抽取现有的问题任务难度大,落地成本居高不下。1)不同的信息抽取任务拥有差异较大的输出结构,难以统一化建模:实体识别任务一般是采用span及其实体类别表示关系抽取任务一般采用三元组(triplet) 结构表示事件抽取任务一般采用记录(record)原创 2022-05-26 16:54:01 · 2175 阅读 · 0 评论 -
深度学习框架拾遗:【Pytorch(十)】——Pytorch高阶API
1)线性回归模型import numpy as np import pandas as pdfrom matplotlib import pyplot as plt import torchfrom torch import nnimport torch.nn.functional as Ffrom torch.utils.data import Dataset,DataLoader,TensorDataset#样本数量n = 400# 生成测试用数据集X = 10*torch.r原创 2022-03-11 16:44:14 · 552 阅读 · 0 评论 -
深度学习框架拾遗:【Pytorch(九)】——Pytorch中阶API
Pytorch的中阶API主要包括:模型层损失函数优化器数据管道1)线性回归模型import numpy as npimport pandas as pdfrom matplotlib import pyplot as pltimport torchfrom torch import nnimport torch.nn.functional as Ffrom torch.utils.data import Dataset,DataLoader,TensorDataset%ma原创 2022-03-11 15:34:11 · 137 阅读 · 0 评论 -
深度学习框架拾遗:【Pytorch(八)】——Pytorch低阶API
Pytorch低阶API主要包括:张量操作计算图自动微分1)线性回归模型import numpy as npimport pandas as pdfrom matplotlib import pyplot as pltimport torchfrom torch import nn# 样本数n= 400# 生成测试用数据X = 10*torch.rand([n,2])-5.0 #torch.rand是均匀分布w0 = torch.tensor([[2.0],[-3.0]]原创 2022-03-11 14:00:22 · 142 阅读 · 0 评论 -
深度学习框架拾遗:【Pytorch(七)】——Pytorch动态计算图
1)动态计算图简介Pytorch的计算图由节点和边组成,节点表示张量或者Function,边表示张量和Function之间的依赖关系。Pytorch中的计算图是动态图。这里的动态主要有两重含义:第一层含义是:计算图的正向传播是立即执行的。无需等待完整的计算图创建完毕,每条语句都会在计算图中动态添加节点和边,并立即执行正向传播得到计算结果。第二层含义是:计算图在反向传播后立即销毁。下次调用需要重新构建计算图。如果在程序中使用了backward方法执行了反向传播,或者利用torch.autograd.g原创 2022-03-09 18:39:38 · 4800 阅读 · 0 评论 -
深度学习框架拾遗:【Pytorch(六)】——Pytorch自动微分机制
神经网络通常依赖反向传播求梯度来更新网络参数,求梯度过程通常是一件非常复杂而容易出错的事情。而深度学习框架可以帮助我们自动地完成这种求梯度运算。Pytorch一般通过反向传播 backward 方法 实现这种求梯度计算。该方法求得的梯度将存在对应自变量张量的grad属性下。除此之外,也能够调用torch.autograd.grad 函数来实现求梯度计算。这就是Pytorch的自动微分机制。1)利用bachward方法求导数backward 方法通常在一个标量张量上调用,该方法求得的梯度将存放在对应自变原创 2022-03-09 15:34:56 · 300 阅读 · 1 评论 -
深度学习框架拾遗:【Pytorch(五)】——Pytorch张量的数据结构
Pytorch的基本数据结构是张量Tensor。张量即多维数组。Pytorch的张量和numpy中的array很类似。1)张量的数据类型张量的数据类型和numpy.array基本一一对应(但是不支持str类型),包括:torch.float64(torch.double)torch.float32(torch.float)torch.float16torch.int64(torch.long)torch.int32(torch.int)torch.int16torch.int8torc原创 2022-03-08 18:05:59 · 356 阅读 · 0 评论 -
深度学习框架拾遗:【Pytorch(四)】——Pytorch文本数据建模流程
Step 1.数据准备这里会用到torchtext包,常见API如下:torchtext.data.Example : 用来表示一个样本,数据和标签torchtext.vocab.Vocab: 词汇表,可以导入一些预训练词向量torchtext.data.Datasets: 数据集类,__getitem__返回 Example实例, torchtext.data.TabularDataset是其子类。torchtext.data.Field : 用来定义字段的处理方法(文本字段,标签字段)创建原创 2022-03-08 13:47:41 · 2286 阅读 · 0 评论 -
深度学习框架拾遗:【Pytorch(三)】——Pytorch结构化数据建模流程
import osimport datetimeimport numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport torch from torch import nnfrom torch.utils.data import Dataset,DataLoader,TensorDataset## 打印时间def printbar(): nowtime = datetime.datetime.now()原创 2022-03-07 13:59:46 · 1246 阅读 · 0 评论 -
深度学习框架拾遗:【Pytorch(二)】——Pytorch的层次结构
Pytorch的层次结构从低到高可以分成如下五层。【硬件层】:Pytorch支持CPU、GPU加入计算资源池。【内核层】:C++实现的内核。【低阶API】:为Python实现的操作符,提供了封装C++内核的低级API指令,主要包括:• 张量结构操作:张量创建,索引切片,维度变换,合并分割• 张量数学运算:标量运算,向量运算,矩阵运算,广播机制• 动态计算图:Funciton,反向传播【中阶API】:为Python实现的模型组件,对低级API进行了函数封装,主要包括:• 模型层• 损原创 2022-03-04 13:35:10 · 484 阅读 · 0 评论 -
深度学习框架拾遗:【Pytorch(一)】——Pytorch的核心概念
Pytorch是一个基于Python的机器学习库。它广泛应用于计算机视觉,自然语言处理等深度学习领域。是目前和TensorFlow分庭抗礼的深度学习框架,在学术圈颇受欢迎。它主要提供了以下两种核心功能:1.支持GPU加速的张量计算。2.方便优化模型的自动微分机制。Pytorch的主要优点:• 简洁易懂:Pytorch的API设计的相当简洁一致。基本上就是tensor, autograd, nn三级封装。学习起来非常容易。有一个这样的段子,说TensorFlow的设计哲学是 Make it com.原创 2022-03-04 13:32:14 · 724 阅读 · 0 评论 -
Docker技术随记(八):Docker深度学习工作环境搭建
nlp-pytorch环境docker run --gpus all --cpus 16 --memory 500gb -d -p 0.0.0.0:6009:6006 -p 9529:8888 -p 1257:22 -v /data/nlp/jx:/root/jx -v /etc/localtime:/etc/localtime --name jx_ngc -e ROOT_PASS="yl123456" -e NOTEBOOK_PASS="yl123456" -e NOTEBOOK_USER="jx" r原创 2022-03-04 10:35:32 · 713 阅读 · 0 评论 -
Docker技术随记(七):Docker相关指令(工作用到)
1.docker infodocker stats --format "table {{.Container}}\t{{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.MemPerc}}"2.docker环境打包docker commit jx_4 jx:bert3.Horvod分布式训练环境搭建## Step 1. 拉取docker镜像docker pull horovod/horovod:0.18.1-tf1.14.0-torch1.2.0-mxnet1原创 2022-02-28 17:58:13 · 334 阅读 · 0 评论 -
Docker技术随记(六):Docker的持久化存储和数据共享
1.Container Layer2.Data Volume3.Docker持久化数据的方案基于本地文件系统的Volume。可以在执行docker create或docker run时,通过-v参数将主机的目录作为容器的数据卷。这部分功能便是基于本地文件系统的volume管理。基于plugin的Volume,支持第三方的存储方案,比如NAS,aws4.Volume的类型受管理的data volume,由docker后台自动创建绑定挂载Volume,具体挂载位置可以由用户指定..原创 2022-02-28 17:55:00 · 229 阅读 · 0 评论 -
Docker技术随记(五):Dockerfile语法梳理及最佳实践
FROM## Ps.尽量使用官方的image作为base image!FROM scratch # 制作base imageFROM centos # 使用base imageFROM ubuntu:14.04 # 指定base image及版本号LABEL## Ps. Metadata不可少!LABEL maintainer="jack18588951684@163.com"LABEL version="1.0"LABEL description="This is d原创 2022-02-28 17:11:02 · 221 阅读 · 0 评论 -
Docker技术随记(四):Container
1.什么是Container通过Image创建(copy)在Image layer之上建立一个container layer(可读写)类比面向对象:类(Image)和实例(Container)Image负责app的存储和分发,Container负责运行app2.容器的常用基本操作1)进入容器内部docker exec -it container_id /bin/bash2)打印容器的ip地址docker exec -it container_id ip a3)停掉容器dock原创 2022-02-28 16:44:20 · 159 阅读 · 0 评论 -
Docker技术随记(三):Docker Image概述
1.什么是image文件和meta data的集合(root filesystem)分层的,并且每一层都可以添加/改变/删除文件,成为一个新的image不同的image可以共享相同的layerimage本身是read-only的2.image的获取1)方式一.Build from Dockerfile## Step 1.新建一个Dockerfile文件,如下:=======================================================FROM ubu原创 2022-02-28 16:32:51 · 273 阅读 · 0 评论 -
Docker技术随记(二):Docker的架构和底层技术
1.Docker PlatformDocker提供了一个开发、打包、运行app的平台把app和底层infrastructure隔离开来2.Docker Engine后台进程(dockerd):通过ps -ef | grep docker查看docker后台进程REST API ServerCLI接口(docker)3.Docker Architeture4.底层技术支持Namespaces:做隔离pid,net,ipc,mnt,utsControl groups:做资源限原创 2022-02-28 16:16:36 · 2362 阅读 · 0 评论 -
Docker技术随记(一):容器技术概述
1.Long Long Time Ago一台服务器部署一个app:部署非常慢成本非常高资源浪费难于迁移和扩展可能会被限定硬件厂商2.虚拟化技术采用虚拟化技术:一台物理机可以部署多个app每个app独立运行再一个VM里虚拟化的优点:资源池————一台物理机的资源分配到了不同的虚拟机里很容易扩展————加物理机or加虚拟机很容易云化————亚马逊AWS,阿里云等虚拟化的局限性:每一个虚拟机都是一个完整的操作系统,要给其分配资源,当虚拟机数量增多时,操作系统本身消耗原创 2022-02-28 16:02:26 · 496 阅读 · 0 评论 -
Python随记:如何在pycham下调试需要指定参数的脚本
以P-Tuning V2的run_rte_roberta.sh为例:export TASK_NAME=superglueexport DATASET_NAME=rteexport CUDA_VISIBLE_DEVICES=3bs=64lr=5e-3dropout=0.1psl=128epoch=200python3 run.py \ --model_name_or_path roberta-large \ --task_name $TASK_NAME \ --dataset原创 2022-02-17 11:12:26 · 963 阅读 · 0 评论 -
Python随记:【Python装饰器(三)】——functools.wraps简介
functools.wraps 旨在消除装饰器对原函数造成的影响,即对原函数的相关属性进行拷贝,已达到装饰器不修改原函数的目的。wraps内部通过partial对象和update_wrapper函数实现。partial是一个类,通过实现了双下方法new,自定义实例化对象过程,使得对象内部保留原函数和固定参数,通过实现双下方法call,使得对象可以像函数一样被调用,再通过内部保留的原函数和固定参数以及传入的其它参数进行原函数调用。...原创 2022-01-07 11:02:02 · 93 阅读 · 0 评论 -
Python随记:【Python装饰器(二)】——装饰器执行流程
模块加载 ->> 遇到@,执行timer函数,传入add函数 ->> 生成timer..wrapper函数并命名为add,其实是覆盖了原同名函数 ->> 调用add(1, 2) ->> 去执行timer..wrapper(1, 2) ->> wrapper内部持有原add函数引用(func),调用func(1, 2) ->>继续执行完wrapper函数。注意:1)如果一个函数被多个修饰器增强,执行顺序执行【洋葱原则】:可以把装饰器想原创 2022-01-07 11:00:27 · 325 阅读 · 0 评论 -
Python随记:【Python装饰器(一)】——什么是装饰器
装饰器用于在源码中“标记”函数,以增强函数的行为。在这个过程中涉及到如下两个概念:高阶函数接受函数作为入参,或者把函数作为结果返回的函数。闭包指延伸了作用域的函数,其中包含函数定义体中引用、但是不在定义体中定义的非全局变量。简言之,就是嵌套函数引用了外层函数的变量。装饰器示例代码1:def timer(func): def wrapper(*args, **kwargs): start = time.time() func(*args, **kwargs)原创 2022-01-07 10:57:25 · 61 阅读 · 0 评论 -
Python随记:【Python异步编程(六)】——异常解决
假如你的并发达到2000个,程序会报错:ValueError: too many file descriptors in select()。报错的原因字面上看是 Python 调取的 select 对打开的文件有最大数量的限制,这个其实是操作系统的限制,linux打开文件的最大数默认是1024,windows默认是509,超过了这个值,程序就开始报错。这里我们有三种方法解决这个问题:• 限制并发数量。(一次不要塞那么多任务,或者限制最大并发数量)• 使用回调的方式。• 修改操作系统打开文件数的最大限制原创 2022-01-07 10:52:01 · 464 阅读 · 0 评论 -
Python随记:【Python异步编程(五)】——多链接异步访问
如果我们需要请求多个URL该怎么办呢,同步的做法访问多个URL只需要加个for循环就可以了。但异步的实现方式并没那么容易,在之前的基础上需要将hello()包装在asyncio的Future对象中,然后将Future对象列表作为任务传递给事件循环。异步实现:import timeimport asynciofrom aiohttp import ClientSessiontasks = []url = "https://www.baidu.com/{}"async def hello(url原创 2022-01-07 10:49:03 · 393 阅读 · 0 评论 -
Python随记:【Python异步编程(四)】——aiohttp
如果需要并发http请求怎么办呢,通常是用requests,但requests是同步的库,如果想异步的话需要引入aiohttp。这里引入一个类,from aiohttp import ClientSession,首先要建立一个session对象,然后用session对象去打开网页。session可以进行多项操作,比如post, get, put, head等。aiohttp异步实现实例:import asynciofrom aiohttp import ClientSessiontasks = [原创 2022-01-07 10:46:01 · 218 阅读 · 0 评论 -
Python随记:【Python异步编程(三)】——asyncio
同步代码:import timedef hello(): time.sleep(1)def run(): for i in range(5): hello() print('Hello World:%s' % time.time()) # 任何伟大的代码都是从Hello World 开始的!if __name__ == '__main__': run()# 输出(间隔约是1s):>> Hello World:152759原创 2022-01-07 10:43:05 · 85 阅读 · 0 评论 -
Python随记:【Python异步编程(二)】——同步/异步的概念
同步是指完成事务的逻辑是顺序执行的,即先执行第一个事务,如果阻塞了,会一直等待,直到这个事务完成,再执行第二个事务;异步是和同步相对的,异步是指在处理调用这个事务之后,不会等待这个事务的处理结果,直接处理第二个事务去了,通过状态、通知、回调来通知调用者处理结果。...原创 2022-01-07 10:38:48 · 421 阅读 · 0 评论 -
Python随记:【Python异步编程(一)】——Python的不足
python由于GIL(全局锁)的存在,不能发挥多核的优势,其性能一直饱受诟病。然而在IO密集型的网络编程里,异步处理比同步处理能提升成百上千倍的效率,弥补了python性能方面的短板。但是python的优势是库(第三方库)极为丰富,运用十分方便。asyncio是python3.4版本引入到标准库的。...原创 2022-01-07 10:37:11 · 438 阅读 · 0 评论