自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 github克隆仓库加速

使用gitclone,网址如下:https://gitclone.com/docs/howto/howto_github注意:只支持克隆不支持提交,提交时要将.git目录下的config文件中的URL改成自己仓库的URL。

2020-08-19 21:08:33 185

原创 各种软件的使用

mobaxterm配置通过跳板机访问远程服务器:https://www.jianshu.com/p/43a0ab131ad9参考上面这个链接,但注意他的跳板机和远程服务器写反了

2021-08-23 19:29:52 111

原创 Pytorch使用记录

torch.max(input, dim)函数对dim维度求最大值,返回两个值,第一个是max value,第二个是max index。分类问题计算accuracy:根据预测结果列表prediction和label列表y计算:torch.eq函数比较两个tensor,返回一个bool类型的tensor,相同的地方为True,不同的地方为False;通过float()函数将其转换成0、1的float类型;mean()函数用来求平均值,即accuracy,计算出来的是一个tensor,item()用来取出

2021-07-31 22:14:42 274

原创 保存一个 Python 对象,之后使用时直接读取

1 pickle什么对象都可以存储# 写with open("lang.data", 'wb') as f: pickle.dump(lang, f)# 读with open("lang.data", "rb") as f: lang = pickle.load(f)2 jsonensure_ascii属性用来控制显示汉字,这样一般# 写with open("lang.json", 'w', encoding='utf8') as f: f.write(json.

2021-06-16 17:48:31 260

原创 latex数学公式符号 + markdown操作(图片的缩放、居中等)

markdown语言:在![](图片链接)形式的图片后面加上#pic_center =30x30。其中#pic_center控制居中,=30x30控制大小。html语言:在<img src="图片链接" />格式的图片前面加上<div align="center">可以使其居中,加上width="%50"可以对齐进行缩放。...

2021-04-02 20:48:17 532

转载 python中copy()和deepcopy()的区别

菜鸟教程的讲解就是非常的简单易懂和amazing啊!附其网址:https://www.runoob.com/w3cnote/python-understanding-dict-copy-shallow-or-deep.html简单摘要如下:= : 赋值引用,a 和 b 都指向同一个对象;copy(): 浅拷贝, a 和 b 是一个独立的对象,但他们的子对象还是指向统一对象;deepcopy(a): 深度拷贝, a 和 b 完全拷贝了父对象及其子对象,两者是完全独立的:...

2021-04-02 19:53:29 115

原创 pycharm直接显示所有show value的值(直接打开所有的值)

用pycharm debug时,如果列表、字典之类的数据结构很长,一个个点show value是很让人头大的一件事,这样设置可以让debug时所有的value自动显现:

2021-03-22 18:53:14 3413 1

原创 C++刷题笔记

int型数据的范围是[−231,231−1][-2^{31}, 2^{31}-1][−231,231−1],即[−109,109][-10^{9}, 10^{9}][−109,109];long型数据的范围是[−231,231−1][-2^{31}, 2^{31}-1][−231,231−1];long long型数据的范围是[−263,263−1][-2^{63}, 2^{63}-1][−263,263−1],即[−1018,1018][-10^{18}, 10^{18}][−1018,1018];

2021-02-03 01:40:53 84

原创 leetcode刷题笔记

数组篇:双指针解法,从前往后、从后往前各一个指针。

2021-01-16 09:53:10 92

原创 使用python的笔记

列表部分遍历(直接for元素):for i in nums:交换列表中的元素:nums[l], nums[r] = nums[r], nums[l] # 元素交换

2021-01-16 09:50:57 120

原创 numpy矩阵操作

矩阵逐元素相乘(element-wise):直接使用乘号 *矩阵点积相乘:np.dot()矩阵求逆:np.linalg.inv(X)随机生成矩阵,rand是随机生成0~1之间的数,randn生成的数服从正态分布:np.random.rand()np.random.randn()

2020-10-01 22:51:45 114

原创 CUDA

此网址:https://developer.nvidia.com/cuda-gpus可以查看GPU算力

2020-09-27 17:58:24 92

原创 conda相关操作

>>>conda create -n <env_name> python=3.6>>>conda activate <env_name>>>>conda deactivate>>>conda remove -n <env_name> --all

2020-09-25 09:04:04 77

原创 bash脚本使用记录

运行脚本可以用:./、sh、bash等。如果要给脚本传参,脚本有系统定义的位置变量,引用脚本参数时,可以使用$1到$9引用这9个变量。

2020-09-25 08:53:49 60

原创 python输出重定向记录

使用python -u让输出实时打印到屏幕,不经过缓存;使用| tee将输出重定向到文件,但不同于一般的重定向,这样做在标准输出同样显示。

2020-09-21 19:46:32 290

原创 python文件操作(路径、移动、复制、见目录)

这一篇记录的比较全:https://www.cnblogs.com/andy-x/p/10144658.html常用的有以下几个:os.path.exists():函数用来检验给出的路径是否真的存在,这里检验的是当前目录下;os.listdir(path):返回指定目录下的所有文件和目录名,若参数缺省,则表示当前目录;os.getcwd():函数得到当前工作目录,即当前Python脚本工作的目录路径;os.chdir():改变当前工作目录,一个小技巧:在改变之前使用getcwd记录下当前位置,切

2020-09-07 20:06:23 857

原创 Typora、github中的markdown不同的行间距

markdown的换行分为段落内换行和段落外换行。段落内换行指的是两行属于同一段落,行间距较小。段落外换行指的是两行不属于同一段落,行间距较大。Typora中shift+enter是段落内换行,enter是换一个段落。所以enter比shift+enter间距大。github中在一行后敲两个空格+enter是段落内换行,直接enter是换一个段落。...

2020-08-29 10:01:14 1701 1

原创 torch-crf

安装命令行:>>>pip install pytorch-crf使用:from torchcrf import CRF

2020-08-25 10:11:38 2673 14

原创 pytorch损失函数(正在更新中,勿点进来看)

nn.BCELoss()注意:这里的两个参数需要是FloatTensor类型,我之前送进去的label是int类型,就会报错,送进去之前要先转换成float。

2020-08-21 13:34:12 261

转载 pytorch中tensor类型转换

转载自:https://www.jb51.net/article/177575.htm,做简要记录1、tensor与numpy数组:# tensor转numpytensor.numpy()# numpy转tensortorch.from_numpy()2、tensor与list:# tensor转listtensor.tolist()# list转tensortorch.tensor()3、tensor类型转换tensor = torch.Tensor(3, 5) # torch.

2020-08-21 13:13:13 1885

转载 pytorch模型保存

转载自:https://www.jianshu.com/p/6ba95579082c只保存模型参数# 保存torch.save(model.state_dict(), '\parameter.pkl')# 加载model = TheModelClass(...)model.load_state_dict(torch.load('\parameter.pkl'))保存完整模型# 保存torch.save(model, '\model.pkl')# 加载model = torch.load

2020-08-21 12:33:31 95

原创 github上markdown文件编写笔记

github的markdown编辑器和其他的有所不同,在此记录遇到的细节。官方文档:https://docs.github.com/en/github/writing-on-github/basic-writing-and-formatting-syntax比较不错的介绍:https://github.com/guodongxiaren/README将一行文字居中,图片同理:<p align="center">你要居中的文字</p>换行:直接回车不能换行,需要在上一行文本

2020-08-20 12:56:17 645

转载 运行linux脚本出现/usr/bin/env: ‘python\r’: No such file or directory

原因及解决方案:https://www.cnblogs.com/skzxc/p/12516989.html

2020-08-05 11:32:07 1336

原创 ubuntu没有pip指令的处理方式

sudo python3 -m pip install --upgrade pip

2020-08-04 14:11:35 3072 1

原创 WSL安装记录及相关

官方安装文档:https://docs.microsoft.com/zh-cn/windows/wsl/install-win10安装到下载Linux分发版那一步,我下载了Ubuntu,打开之后会报错:解决方法:去到Ubuntu的对应目录:C/user/AppData/local/packages/CanonicalGroup……/,右击LocalState,属性,高级,将压缩内容以节省存储空间的选项的勾去掉即可。...

2020-08-04 09:58:02 120

原创 pypi的embeddings包踩坑

  做nlp方向的任务,经常会使用embeddings包导入预训练好的词向量。里面有glove、fasttext、KazumaChar等等。  一个很深的坑是,在包的embedding.py文件的22行,获取用户主目录,使用的key是’HOME’。但这是linux系统的key值,  在windows系统下运行则会报错,因为windows没有‘HOME’关键字,有的是‘HOMEPATH’。将其改为HOMEPATH即可正确运行:...

2020-07-31 13:33:34 412 3

原创 7-3 锁与同步

一、同步要读写共享的数据。通过锁的机制,某个线程可以获得对数据的独家访问权,其他的线程则被阻塞,无法访问。线程使用acquire获得锁,release释放。同一时刻一个锁只能被一个线程所有,其他的线程如果要申请只能等正在使用的线程去释放。二、锁每个对象都可以作为锁。java中使用synchronized来对某个语句上锁,表示某一时刻只有一个线程可以执行这条语句,执行完自动释放锁:1、同步语句、代码块注意,如果要防止竞争,要用同一把锁(相同的对象)进行保护。例子,下图中所有的lock都是同一

2020-07-11 16:35:58 96

原创 7-2 线程安全

一、什么是线程安全要求ADT或方法在多线程中要执行正确。要求不违反spec,与线程如何调度无关,且不能为了线程安全而要求client满足某些要求。迭代器不是线程安全的,不能同时remove和迭代。**线程不安全的本质:**多个线程都去修改、访问某个共享的数据。保证线程安全的四个方法:限制数据共享,共享不可变数据,共享线程安全的可变数据,同步机制。二、限制数据共享1、将可变数据限制在单一线程内部,避免竞争。JVM内存机制:每个线程有自己的栈,且仅能访问自己的栈。基本的局部变量保存在线程栈中,对象

2020-07-11 16:22:56 104

原创 7-1 并发

一、什么是并发编程并发:多个计算同时运行、同一时刻多个应用运行。并发可以充分利用多核处理器。并发编程的两个模型:1、共享内存,并发的模块共享数据;2、消息传递,并发的模块通过传递消息来进行交互。二、进程、线程进程是一个正在执行的程序的实例,是私有空间,彼此隔离的。线程是一个程序的一部分,是程序内部的控制机制,一个程序可以包含一个或多个线程。1、进程进程拥有整台计算机的资源(虚拟的),多进程之间不共享内存,互不干扰,通过消息传递进行协作。一个应用可能包含多个进程。2、线程线程是虚拟CPU,线

2020-07-11 16:12:21 156

原创 6-3 断言与防御式编程

一、ADT的设计静态检查、动态检查、使用不可变的类型、值、引用等都有助于减少bug。bug是不可能完全避免的,要将bug限定在一个小范围内,使得程序尽早出问题。例如下图,前置条件要求x>=0,虽然说违反了前置条件方法怎么做都行,但最好还是今早报错。二、断言开发阶段在代码中嵌入,检验某些条件是否成立。如果断言失败,会抛出AssertionError。断言有两种形式,第二种中的message是在断言失败的时候抛出的信息:在控制流复杂时可以使用断言机制,确保程序永远不会执行到某个地方。但如果

2020-07-10 22:00:55 179

原创 6-2 错误与异常处理

一、错误与异常  Error和Exception是接口,下图中虚线圈起来的部分属于unchecked exception,剩余部分属于checked exception,unchecked类型编译器不管,其他的编译器会check,必须被捕获或者被抛出。  错误一般是指内部系统的问题,程序员一般对此无能为力,只能让程序gracefully地退出;异常则是程序导致的问题,可以捕获、处理。二、异常处理1、异常  异常指程序中出现的非正常事件。异常可以通过异常处理程序处理,也可以抛出异常、将信息传递给上

2020-07-10 21:57:44 264

原创 6-1 健壮性与正确性

一、健壮性与正确性1、健壮性指一个系统不正常的输入或不正常的条件下仍然能够表现正常的程度。面向健壮性的编程:可以处理未期望的行为和错误的终止;即使终止执行,也要展示错误信息;要假设用户是个白痴,可能有各种奇葩的输入。原则:1、封闭实现细节,限定用户的恶意行为;2、考虑各种极端情况。2、正确性指程序按照规约执行的能力,是最重要的质量指标。正确性确保程序永远不会给用户错误的结果,遇到错误情况直接报错退出;健壮性倾向于容错,遇到错误情况也要尽可能保持软件运行。3、健壮性vs正确性健壮性对用户友好

2020-07-10 21:52:46 788

原创 5-3 面向可维护性的构造技术

一、基于状态的编程1、状态模式对象有一个状态属性,并且可以变化。形式如下,context是某一个对象,它有属性state(状态),状态在一定的条件下会跳转至另一状态;用一个State接口来表示状态、定义状态间的转换:举个例子,下图是一个有状态的ADT,他可以变换自己的状态(move):状态类如下,每一个状态继承一个状态接口,有状态转换(move)、是否接收状态(accept)方法:注意,这里的状态类使用单例模式:1、构造函数要是private的;2、变量是静态的。2、备忘录模式记录某对

2020-07-09 18:19:48 114

原创 5-2 面向可维护性的设计模式

一、创造型的模式1、工厂方法模式  定义一个用于创建对象的工厂接口,其子类型来决定创建对象时实例化哪一个类。模式如下,Product是一个对象,其有子类ProductOne、ProductTwo等,定义一个工厂接口Creator,其有工厂方法factoryMethod,这样就可以利用工厂方法去创建对象。不同的工厂方法实例化接口Product不同的子类,但返回的都是接口类型,即Product:  一个例子:  静态工厂就不用new了:2、抽象工厂模式  提供接口以创建一组相关/相互依赖的对象

2020-07-09 16:09:37 94

原创 5-1 可维护性的度量和构造原则

1、软件维护修复错误、改善性能。修改后要进行回归测试,确保没有引入新的故障。2、可维护性的度量圈/环复杂度:独立路径的数量、代码行数、可维护性指数MI、继承的层次数、类之间的耦合度、单元测试的覆盖度3、模块化设计高内聚低耦合、分离关注点、信息隐藏。五个标准:1、可分解性,将问题分解成小问题;2、可组合性;3、可理解性;4、可持续性,发生变化时产生的影响较小;5、保护性,异常、错误的影响小。五个方法:1、直接映射;2、尽量少的接口;3、尽量小的接口,两个模块交换较少的信息;4、明显的接口;5、

2020-07-09 16:01:03 311

原创 4-2 面向复用的软件构造技术

1、设计可复用的类1.1 行为子类型和LSP子类型:​相比于父类型,要有相同或更强的ADT(前置条件变弱或后置条件变强、更强的不变量);​在java中表现为:子类型可以增加方法;子类型中重写的方法必须返回相同或子类型的返回值(协变);子类型中重写的方法必须接受相同类型的参数(逆变);子类型重写的方法不能抛出额外异常。例子:​假如一个长方形类、一个正方形类,然后正方形类继承长方形类。长方形有一个方法setWidth:改变某条边的长度。这时正方形类就无法继承这个方法,因为会破坏规约。正方形类和长方形

2020-07-08 08:21:11 92

原创 4-3 面向复用的设计模式

设计模式:前人经验总结出来的设计方案,可复用创建型模式:告诉我们怎么更好的创建对象,第五章。结构型模式:研究结构,怎么把类、对象更好的组合在一起。行为类模式:研究对象、类怎么进行调度,怎么更好的分配职责、实现功能。一、结构性模式(1)适配器模式:  解决类之间接口不兼容问题,即类是以一种方式实现的,但用户想用一种不同的方式调用(例如签名不同)。  方法:通过增加一个接口,对已存在的类...

2020-04-23 10:05:18 288

原创 Markdown首行缩进两格、改变字体、正下方下标

首行缩进在要空格的句子前面加上&emsp;&emsp;示例:&emsp;&emsp;空两格不空两格  空两格不空两格改字体在要改的那一行前面加上<font face="宋体">,若要在一段的中途结束加上</font>示例:<font face="宋体">这是宋体这是宋体...

2020-04-21 11:40:43 797

原创 4-1 可复用性概述

1、什么是软件可复用?  使用现有的软件组件来快速实现需要的功能。软件可复用的两个方面:  1、开发层面:面向复用编程,开发成本高,缺乏针对性,性能差些;  2、使用层面:基于复用编程,复用时需要适配;为什么要可复用:  降低成本和开发时间;能被复用的模块都是可靠稳定的;标准化的,在不同应用中可保持一致。可复用的缺点:  开发可重用的组件需要额外的代价;缺乏针对性,性能差;复用时也...

2020-04-21 11:24:46 1176

原创 nlp-tutorial代码注释笔记

系列语:本系列是nlp-tutorial代码注释系列,github上原项目地址为:nlp-tutorial,本系列每一篇文章的大纲是相关知识点介绍 + 详细代码注释。传送门:nlp-tutorial代码注释1-1,语言模型、n-gram简介nlp-tutorial代码注释1-2,词向量、Word2Vec、Skip-gram简述nlp-tutorial代码注释2-1,CNN用于句子分类简介...

2020-03-30 15:36:46 474

空空如也

空空如也

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

TA关注的人

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