自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(87)
  • 收藏
  • 关注

原创 python读取和存入json文件

将内容存入json文件import jsonfilename="C:/Users/13451/Desktop/captions_train.json"with open(filename), 'w') as j: json.dump(word_map, j)读取json文件中的内容import jsonwith open(filename,'r') as f: x = json.load(f)print(x)其中open函数的第二个参数,'w’为写入模式,'wb’为二

2020-11-02 16:14:00 565

转载 PyTorch中使用指定的GPU

PyTorch默认使用从0开始的GPU,如果GPU0正在运行程序,需要指定其他GPU。有如下两种方法来指定需要使用的GPU。1.类似tensorflow指定GPU的方式,使用CUDA_VISIBLE_DEVICES。1.1 直接终端中设定:CUDA_VISIBLE_DEVICES=1 python my_script.py1.2 python代码中设定:import osos.environ["CUDA_VISIBLE_DEVICES"] = "2"见网址:http://www.cnbl

2020-10-19 16:10:09 1410

原创 Mobaxterm常用的指令(基于linux)

列出所有的环境(2种方法)conda env listconda info --envs创建虚拟环境(默认anaconda3/envs路径)conda create -n megumi python=3.8.5 #megumi为环境名称, #3.8.5是安装python的版本激活环境(2种方法)source activate 环境名conda activate 环境名退出环境source deactivate 环境名conda deactivate 环境名

2020-10-06 19:47:41 10302 1

原创 Python第三方库的安装,升级以及版本查看

方法:通过电脑的cmd命令行来进行python第三方库的安装,升级以及版本查看查看本机安装的所有模块以及版本在cmd命令行输入以下命令:python -m pip listPython第三方库安装在cmd命令行输入以下命令:'''安装第三方库,如果安装pygame,则只需用pygame替代第三方库名称即可'''#下面两种安装方式都可以,没区别pip install 第三方库名称 #第一种方法python -m pip install 第三方库名称 #第二种方法#例子pi

2020-06-22 16:50:38 7821 2

原创 shell脚本--使用for循环逐行访问txt文件

方法1export text_path=data/1.txtfor line in $(cat $text_path)do echo $linedone方法2export text_path=data/1.txtfor line in `cat $text_path`do echo $linedone

2021-10-11 14:58:49 2869 1

原创 python中关键字global的简单理解

python用global关键字来标识函数里或类里的全局变量,下面以例子来看看global关键字的作用。未使用global关键字a=10 #全局变量def sum(x): a=2 #局部变量 x=a*x return xx=sum(3)print("a:",a) #10 输出的是全局变量a=10print("x:",x) #6使用global关键字在想使用或更改全局变量的时候使用global来标识该全局变量。a=10 #全局变量def sum(x):

2021-10-08 21:55:10 918

原创 Python中replace()函数

replace()函数功能:类似正则表达式的sub()函数,使用新的字符串替换主串中的内容。函数需要通过字符串来调用,函数参数依次为:old表示主串中要被替换的字符串。new表示新的字符串。max表示替换次数,默认不限次数。示例代码:str="saber_sakura_sakuya"x=str.replace('sa','re')x1=str.replace('sa','re',2)print(x)print(x1)输出:reber_rekura_rekuyareber_r

2021-09-02 10:20:14 6924

原创 Python正则表达式笔记

正则表达式作用字符函数函数参数re.findall()其他概念贪婪模式和非贪婪模式作用正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。字符字符功能.代表除换行符\n外的任何单字符*代表前面的字符、子表达式或括号里的字符0次或多次?1.代表前面的字符、子表达式括号里的字符0次或1次。2.代表一个非贪婪限定符。( )标记

2021-09-01 17:42:58 521

原创 pytorch使用GPU炼丹笔记

如何使用GPU训练/测试模型使用单GPU设置设备将数据转换成CUDA张量将模型参数转换成CUDA张量使用指定GPU1.使用CUDA_VISIBLE_DEVICES。1.1 直接在终端或shell脚本中设定:1.2 python代码中设定:2. 使用函数 set_device使用多GPU实验结果原理:通过依靠GPU的并行计算能力,能够大大缩短模型训练时间。在使用GPU跑代码的时候,只需要将模型参数和数据放到GPU上转换成CUDA张量即可。所以,代码需要修改的地方只有两处:1.模型实例化处。2.数据

2021-08-24 21:34:23 1467

原创 安装Pytorch如何选择CUDA的版本

安装Pytorch时CUDA的选择Nvidia CUDA查看CUDA版本方法查看CUDA的驱动API版本查看CUDA的运行API版本查看官方CUDA的运行API版本方法1方法2查看Anaconda里cudatoolkit包版本CUDA是一个并行计算平台和编程模型,能够使得使用GPU进行通用计算变得简单和优雅。Nvidia官方提供的CUDA 库是一个完整的工具安装包,其中提供了 Nvidia驱动程序、开发 CUDA 程序相关的开发工具包等可供安装的选项。Nvidia CUDANvidia安装的cuda是

2021-08-01 17:09:55 6058 3

原创 正则表达式实战---爬取多张图片

主要是分析网站图片的html源代码,来决定正则表达式如何写。完整代码#使用正则表达式爬取多张图片,亮点在于数据解析#爬取网站:https://www.bilibili.com/read/cv11323037?from=searchimport requestsimport reimport osimage_path='image'if not os.path.exists(image_path): os.makedirs(image_path)url='https://www.b

2021-06-20 21:28:20 582

原创 Requests库实战(四)---爬取肯德基餐厅地址信息

功能:爬取查询后的肯德基餐厅的地址信息地址:http://www.kfc.com.cn/kfccda/storelist/index.aspx亮点是post请求的参数有两组:查询字符串参数,表单数据。对于post请求,由于url中隐藏了许多参数,所以引入了表单数据,查询字符串参数用于拼接url,表单数据用于查询内容。理论上查询字符串参数用params传递,表单数据用data传递。但是实践证明都放入params或data中传也没问题。完整代码import requests#请求url:http:/

2021-06-19 20:58:39 1031

原创 Requests库实战(三)---爬取豆瓣电影详细信息

完整代码爬取豆瓣电影的详细信息地址:豆瓣电影动画向下滑动时新增的数据也是Ajax请求,原理和上一个项目是一样的。import requestsimport jsonheader={ 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.101 Safari/537.36 Edg/91.0.864.48'}url='h

2021-06-19 19:59:59 275

原创 Requests库实战(二)---破解百度翻译

功能:爬取到页面中翻译后的文本数据获取请求地址和请求方式先输入dog翻译一下,发现是Ajax请求(动态实时刷新页面),Ajax请求的数据包可以在网络的XHR中看到。找到输入dog的数据包,通过标头的表单数据kw:dog以及响应的结果就可以看到是这个数据包。在标头的常规中得到请求URL和请求方式(post),在响应头看到响应结果类型为json数据完整代码import requestsimport json#伪装UAheader={ 'User-Agent':'Mozilla/5

2021-06-19 19:24:31 241

原创 Requests库实战(一)---网页采集器

网页采集器User-Agent伪装完整代码功能:通过动态url来实现用户输入搜索关键字,返回搜索到的页面。User-Agent伪装一种反爬机制。原理:网站的服务器会检测对于请求的载体身份标识,如果检测到请求的载体身份标识为某一款浏览器,说明该请求为一个正常的请求。然而我们写的get请求的身份标识是爬虫程序,所以需要伪装成浏览器的User-Agent。完整代码import requestsheaders={ 'User-Agent':'Mozilla/5.0 (Windows NT 1

2021-06-19 17:06:47 155

原创 Requests库基本使用

requests库基本使用基本流程python中一个基于网络请求的模块,功能强大,简单便捷,效率极高,可以取代古老的urllib模块。作用:模拟浏览器向服务器发起请求。基本流程1.指定URL2.对指定的URL发起请求(get或post)3.获取响应的数据4.持久化存储数据,即将数据存储到本地如爬取搜狗主页信息,代码如下:import requests#1.指定urlurl="https://www.sogou.com/"#2.发起请求,get方法返回一个响应对象response

2021-06-19 16:06:34 124

原创 python--字符/文本编码解码笔记

字符/文本编码解码笔记1.字符问题编码和解码2.字节概要3.基本的编解码器编码类型史字符编码ASCII码GB2312以及其他编码UNICODE标准编码UTF-8编码4.了解编解码问题处理UnicodeEncoderError解决方法:处理UnicodeDecodeError解决方法5.修改源代码编码6.查看文件编码方式终端查看文件编码方式代码内查看文件编码方式7.处理文本文件查看open函数默认编码方式1.字符问题“字符串”是个相当简单的概念:一个字符串是一个字符序列。在 2015 年,“字符”的最佳

2021-05-23 20:41:17 565 2

原创 KMP算法笔记

1.KMP算法本质上就是对朴素匹配算法(BF)的一个优化,减少朴素匹配算法中不必要匹配的次数,核心代码和朴素匹配算法差不多,BF是移动字串逐个字符匹配,每次模式串(子串)匹配只移动一个字符单位,而KMP算法是每次模式串匹配移动j-next个字符单位,next存放在next[]数组里,j为匹配失败的那个字符位置。2.为什么KMP算法可以减少不必要的匹配次数?利用了之前已经匹配过的字符前缀信息,比如下图:(第一行为主串,第二行为模式串)可以看到在第七个位置匹配失败,只需要满足主串a字符前面从右边开始,从

2021-05-15 12:16:35 129

原创 深度学习pytorch--多层感知机(三)

使用pytorch框架实现多层感知机和实现softmax回归唯一的不同在于我们多加了一个全连接层作为隐藏层。它的隐藏单元个数为256,并使用ReLU函数作为激活函数。#模型的核心代码为: nn.Linear(num_inputs, num_hiddens), nn.ReLU(), nn.Linear(num_hiddens, num_outputs), ...

2021-05-13 13:37:14 148

原创 深度学习pytorch--多层感知机(二)

多层感知机的从零开始实现获取和读取数据定义模型参数定义激活函数定义模型定义损失函数训练模型小结我们已经从上一节里了解了多层感知机的原理。下面,我们一起来动手实现一个多层感知机。首先导入实现所需的包或模块。import torchimport numpy as np获取和读取数据这里继续使用Fashion-MNIST数据集。代码和之前softmax回归是一样的,我们将使用多层感知机对图像进行分类。定义模型参数我们在3(softmax回归的从零开始实现)里已经介绍了,Fashion-MNIST数

2021-05-13 13:30:39 242

原创 深度学习pytorch--多层感知机(一)

多层感知机隐藏层激活函数ReLU函数sigmoid函数tanh函数多层感知机小结我们已经介绍了包括线性回归和softmax回归在内的单层神经网络。然而深度学习主要关注多层模型。在本节中,我们将以多层感知机(multilayer perceptron,MLP)为例,介绍多层神经网络的概念。隐藏层多层感知机在单层神经网络的基础上引入了一到多个隐藏层(hidden layer)。隐藏层位于输入层和输出层之间。图3.3展示了一个多层感知机的神经网络图,它含有一个隐藏层,该层中有5个隐藏单元。 带有隐藏层的

2021-05-12 16:02:41 478 1

原创 深度学习pytorch--softmax回归(三)

softmax回归的简洁实现获取和读取数据定义和初始化模型softmax和交叉熵损失函数定义优化算法模型评价训练模型小结完整代码前两篇链接:深度学习pytorch–softmax回归(一)深度学习pytorch–softmax回归(二)本文使用框架来实现模型。获取和读取数据我们仍然使用Fashion-MNIST数据集和上一节中设置的批量大小。#获取数据集mnist_train=torchvision.datasets.FashionMNIST('./Datasets/FashionMNIST

2021-05-12 00:06:16 209

原创 深度学习pytorch--softmax回归(二)

softmax回归的从零开始实现实验前思考获取和读取数据获取数据集查看数据集查看下载后的.pt文件查看mnist_train和mnist_test读取数据集查看数据迭代器内容初始化模型参数定义softmax函数定义模型定义损失函数计算分类准确率模型评价--准确率开始训练可视化总结完整代码实验前思考本文不使用框架解决多分类问题。一定要先明白实验原理。可看博客深度学习pytorch–softmax回归(一)一定要先弄清楚数据是怎么用Tensor表示的。获取和读取数据这里使用Fashion-MNI

2021-05-11 23:00:19 560

转载 深度学习pytorch--MNIST数据集

图像分类数据集(Fashion-MNIST)在介绍softmax回归的实现前我们先引入一个多类图像分类数据集。它将在后面的章节中被多次使用,以方便我们观察比较算法之间在模型精度和计算效率上的区别。图像分类数据集中最常用的是手写数字识别数据集MNIST[1]。但大部分模型在MNIST上的分类精度都超过了95%。为了更直观地观察算法之间的差异,我们将使用一个图像内容更加复杂的数据集Fashion-MNIST[2](这个数据集也比较小,只有几十M,没有GPU的电脑也能吃得消)。本节我们将使用torchvisi

2021-05-11 13:15:40 691

转载 深度学习pytorch--softmax回归(一)

softmax回归前几节介绍的线性回归模型适用于输出为连续值的情景。在另一类情景中,模型输出可以是一个像图像类别这样的离散值。对于这样的离散值预测问题,我们可以使用诸如softmax回归在内的分类模型。和线性回归不同,softmax回归的输出单元从一个变成了多个,且引入了softmax运算使输出更适合离散值的预测和训练。本节以softmax回归模型为例,介绍神经网络中的分类模型。分类问题让我们考虑一个简单的图像分类问题,其输入图像的高和宽均为2像素,且色彩为灰度。这样每个像素值都可以用一个标量表示。我

2021-05-11 12:20:50 293

原创 深度学习pytorch--线性回归(三)

线性回归pytorch框架实现线性回归的简洁实现生成数据集读取数据定义模型初始化模型参数定义损失函数定义优化算法训练模型小结完整代码:线性回归的简洁实现随着深度学习框架的发展,开发深度学习应用变得越来越便利。实践中,我们通常可以用比上一节更简洁的代码来实现同样的模型。在本节中,我们将介绍如何使用PyTorch更方便地实现线性回归的训练。生成数据集该部分和上一节一样。其中features是训练数据特征,labels是标签。#生成数据集以及计算grand-truth,和之前一样num_inputs=

2021-05-11 11:47:33 378

原创 深度学习pytorch--线性回归(二)

线性回归无框架实现线性回归的从零开始实现生成数据集(简单的人工构造)读取数据初始化模型参数定义模型定义损失函数定义优化算法训练模型小结线性回归的从零开始实现为了深入理解深度学习是如何工作的,本节不适用强大的深度学习框架,而是介绍如何只利用Tensor和autograd来实现一个线性回归的训练。首先,导入本节中实验所需的包或模块如下:import torchfrom matplotlib import pyplot as pltimport numpy as npimport random生

2021-05-09 22:14:55 268 1

原创 深度学习pytorch--线性回归(一)

线性回归线性回归案例提出问题模型定义模型训练(1) 训练数据(2) 损失函数(3) 优化算法模型预测线性回归的表示方法神经网络图矢量计算小结线性回归案例线性回归输出是一个连续值,因此适用于回归问题。回归问题在实际中很常见,如预测房屋价格、气温、销售额等连续值的问题。提出问题目标是预测一栋房子的售出价格,假设价格只取决于面积和房龄这两个因素。模型定义设房屋的面积为 x1x_1x1​,房龄为 x2x_2x2​,售出价格为 yyy。我们需要建立基于输入 x1x_1x1​ 和 x2x_2x2​ 来计算输

2021-05-09 20:45:02 243

原创 深度学习Pytorch--梯度与反向传播笔记

Pytorch梯度与反向传播相关概念导数偏导数方向导数梯度梯度下降法自动求梯度概念Tensor反向传播求梯度相关概念先来理解一下从导数到梯度的相关概念。导数一元函数中导数就是该函数所代表的曲线在这一点上的切线斜率。多元函数的导数可以称为全导数,可以得到无数条曲线,每条曲线都有一条切线,每条切线与一个全导数相互对应,全导数可以通过偏导数计算。偏导数多元函数中的概念,通俗地讲就是固定其他自变量所得到平面曲线的某一点的切线斜率。方向导数顾名思义,就是某一方向的导数。关于以上导数如果还不懂的

2021-05-09 18:23:38 946

原创 VSCode快捷键

记录不熟练的vscode快捷键快捷键命令复制本行到下一行shift+alt+ down(下键)移动光标至行首home键移动光标至行尾end键

2021-05-08 22:56:08 116

原创 python中parse.add_argument()简单用法

argparse模块简单使用流程1.导入模块2.创建解析器3.添加参数4.解析参数5使用参数完整代码argparse 模块是 Python 内置的一个用于命令项选项与参数解析的模块。下面以例子来简单记下模块使用流程。1.导入模块import argparse2.创建解析器该解析器将命令行解析成python数据类型所需要的全部信息。parser = argparse.ArgumentParser(description='test') #description是对程序功能的描述3.添加参数

2021-04-02 17:03:51 4511 1

原创 Python中的lambda表达式

lambda表达式被用于创建匿名函数。匿名函数就是没有名字的函数。返回类型是函数类型。作用:一行就可以表示一个函数,使代码简洁。很适合只使用一次的函数。语法lambda 参数:表达式等价于def 函数名(参数): return 表达式举例无参函数get_name=lambda:"saber"print(get_name()) #结果:saber等价于def get_name(): return "saber"print(get_name()) #结果:saber有参函

2021-03-29 18:00:09 145

原创 Python中的符号

解释经常在python源码中看到的->和:等符号。标注关联到某个变量、类属性、函数形参或返回值的标签,被约定作为类型提示来使用。局部变量的标注在运行时不可访问,但全局变量、类属性和函数的标注会分别存放模块、类和函数的 __annotations __特殊属性中。类型提示标注为变量、类属性、函数的形参或返回值指定预期的类型。类型提示属于可选项,Python 不要求提供,但其可对静态类型分析工具起作用,并可协助 IDE 实现代码补全与重构。全局变量、类属性和函数的类型提示可以使用 typin

2021-03-27 12:23:47 829

原创 ubuntu下vscode使用cmake编译运行c++配置文件

在gcc/g++能编译运行c++的情况下,使用cmake编译只需要修改以下两个文件。launch.json{ // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "

2021-03-08 22:48:08 400

原创 计算机网络应用层笔记--域名系统DNS

这里写目录标题标识因特网上主机的方式主机名IP地址域名系统(DNS)工作过程互联网的域名结构DNS规定标识因特网上主机的方式主机名计算机的名字。我现在的主机名字为DESKTOP-E8FG2MI。其他如:www.google.com,www.facebook.com。主机名几乎没有提供在因特网的位置。两种查看方式:右键点击我的电脑属性。在cmd中输入ipconfig/all。IP地址网络层的内容。形如:121.7.106. 83IP地址具有层次结构,是因为当我们从左至右扫描它时,我们会得

2021-03-05 10:12:11 596

原创 计算机网络笔记----应用层

应用层应用层协议原理网络应用程序的体系结构客户-服务器体系结构P2P体系结构进程通信进程与计算机网络之间的接口进程寻址可供应用程序使用的运输服务可靠数据传输吞吐量定时安全性因特网提供的运输服务TCP服务面向连接的服务可靠的数据传送服务拥塞控制TCP安全UDP服务应用层协议网络应用和应用层协议区别Web和HTTP统一资源定位符URL使用HTTP的URLHTTP的操作过程持续连接和非持续连接代理服务器HTTP报文格式HTTP请求报文开始行首部行实体主体请求报文例子HTTP响应报文状态行状态码响应报文举例用户与服

2021-02-21 23:48:50 536

原创 Cookie

用户与服务器的交互:cookieHTTP协议的无状态特性:同一个客户第二次访问同一个服务器上的页面时, 服务器的响应与第一次被访问时的相同,因为 服务器并不记得曾经访问过的这个客户, 也不记得为该客户曾经服务过多少次。有些Web站点希望识别用户,记住用户的身份,比如淘宝购物。此时HTTP使用了Cookie。它允许Web站点对用户进行追踪。Cookie技术有4个组件:1.在HTTP响应报文中的一个cookie首部行。2.在HTTP请求报文中的一个cookie首部行。3.在用户端系统中保留有一个c

2021-02-21 23:33:41 110

原创 代理服务器

代理服务器是一种网络实体,又称万维网高速缓存。代理服务器把最近的一些请求和 响应暂 存在本地磁盘中。 当新请求到达时, 若代理服务器发现这个请求与暂时存放的请求相同, 就返回暂存的响应, 而不需要按URL的地址再次去互联网访问该资源。比如:校园网使用代理服务器时,访问互联网的过程为:1.校园网的计算机中的浏览器向互联网的服务器请求服务时, 就先和校园网的代理服务器建立TCP连接, 并向代理服务器发出HTTP请求报文(见图中的0)。2.若代理服务器已经存放了所请求的对象, 代理服务器就把这个对象放

2021-02-21 23:00:39 4971

原创 HTTP报文格式

HTTP报文格式HTTP规范[RFC 1945;RFC 26167;RFC 7540:包含了对HTTP 报文格式的定义。HTTP报文有两种:请求报文和响应报文。HTTP请求报文从客户向服务器发送请求报文。结构如图:开始行第一行为开始行也叫做请求行。包括三个字段:方法字段,URL字段和HTTP版本字段。CR和LF分布代表回车和换行。HTTP请求报文的一些方法:首部行用来说明浏览器、服务器或报文主题的一些信息。可以有多行,下面例子有4行。实体主体在请求报文中一般都不用这个字段, 而在

2021-02-21 22:57:39 492

原创 HTTP的操作过程

HTTP的操作过程HTTP协议定义了浏览器(即万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。HTTP是面向事务(一系列的信息交换,不可分割的整体)的应用层协议,它是万维网上能够可靠地交换文件的重要基础。HTTP 不仅传送完成超文本跳转所必需的信息, 而且也传送任何可从互联网上得到的 信息, 如文本、 超文本、 声音和图像等。万维网的大致工作过程,如下图:每个万维网网点都有一个 服务器进程, 它不断地监听 TCP的端口80, 以便发现是否有浏览器向它发出连接建立

2021-02-21 22:52:47 780

空空如也

空空如也

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

TA关注的人

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