自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(364)
  • 资源 (3)
  • 收藏
  • 关注

原创 《极客兔兔GeeCache第五天 分布式节点》中节点查询的过程理解

最近在跟着极客兔兔的七天Go教程写项目,刷到[动手写分布式缓存 - GeeCache第五天 分布式节点](https://geektutu.com/post/geecache-day5.html)这一篇后感觉节点查询部分非常绕非常难以理解,并且看到评论区有其他读者也有相同的感受,因此把自己花了三四个小时才搞懂的节点选择和数据查询的整个过程记录下了,希望能帮到其他有相同困惑的读者。如果有说的不对的点,欢迎评论区一起讨论。

2023-04-03 00:40:54 742

原创 django解析前端传过来的数据

如图,前端以这样的方式传参:后端可以这样获取json数据:最后解析出来的数据是这样的:

2021-04-18 11:40:41 745

原创 django获取参数

比如我要获取这个链接的type参数的值:http://127.0.0.1:8000/getData/?type=validate1.urls.py:re_path('^getData/$', views.getProblemData),2.views.pydef getProblemData(request): type=request.GET.get('type') # 直接用request.GET.get(参数名)即可获得参数的值 print(1111881818181818

2021-03-04 15:10:12 198 1

原创 vue提交带文件的表单,Django负责接收

文章目录具体的思路:一、Vue1.1 template1.2 script1.2.1 uploadZip()1.2.2 getFilePath()1.2.3 uploadSetting()1.2.4 getSettingPath()1.2.5 onSubmit()二、Django2.2 views.py2.2.1 处理表单数据具体的思路:文件先上传到服务器,由后端返回一个链接前端接收这个链接后存到变量里,等提交表单时一起把数据传给后端把数据传给后端时,Django通过一个forms接收数据把这

2021-02-26 11:51:35 1302

原创 Django+vue上传文件并返回文件在服务器中的路径

文章目录vueDjangovue用了element ui的el-upload组件1.HTML代码<!--index.vue--><el-upload class="upload-demo" :action="uploadZip()" :on-success="getFilePath" :file-list="fileList"> &lt

2021-02-26 01:44:00 1726

原创 用golang解析xlsx文件

用到的模块是github.com/tealeg/xlsx测试文件的数据是://解析一个学号+姓名的表,并返回一个n×2的学号姓名字符串数组func AnalyzeExcel(path string) [1000][2]string{ xlFile, err:= xlsx.OpenFile(path)//打开文件 if(err!=nil){ log.Println(err) } var result [1000][2] string for _,sheet := range xlFile

2020-09-15 16:56:54 2537

原创 docker的理解和相关操作

1.docker是一种Linux容器的封装2.Linux容器并不是模拟一个完整的操作系统,而是对进程进行隔离。或者说,在正常进程的外面套了一个保护层。对于容器里的进程来说,它接触到的各种资源都是虚拟的。中的来说,容器是进程级别的...

2019-11-27 20:29:57 108

原创 纯纯python实现梯度下降、随机梯度下降

最近面试有要求手撕SGD,这里顺便就把梯度下降、随机梯度下降、批次梯度下降给写出来了。1.求梯度时注意label[i]和pred[i]不要搞反,否则会导致模型发散。2.如果跑了几千个epoch,还是没有收敛,可能是学习率太小了。

2024-04-09 14:12:11 360

原创 用Go实现两个线程交替打印奇数和偶数

【代码】用Go实现两个线程交替打印奇数和偶数。

2023-11-03 12:14:48 236

原创 调用兄弟目录中的模块

打印sys.path可以看到,sys.path[0]就是test1.py的绝对路径,所以os.path.dirname(sys.path[0])就是parDir的绝对路径,把parDir的绝对路径加进去以后,python解释器进行模块搜索时便可以从父目录开始搜索。使用sys.path.append把父目录的加到模块搜索路径列表中即可。

2023-05-17 11:14:20 242

原创 《极客兔兔GeeCache第二天 单机并发缓存》中缓存的实现

它主要是由一个哈希表、一个双向链表组成的。哈希表每一个键值对中存储的键是查询的键,value值是这个键对应的值在双向链表中的位置。双向链表它支持实现的功能是移除尾节点、把访问的键移到首节点。所以,最底层的LRUCache负责实现LRU这个策略,第二层中的Cache负责加锁解锁,第三层的group负责提供对外的接口。首先定义一个数据结构叫Group,这个Group的作用是定义一些接口让外部请求可以查询或者修改缓存。总的来说分为三个层级:外部如何访问、如何加锁、如何实现LRU。

2023-04-27 15:33:36 277

原创 证明:对于两个正整数a和b,为什么a/b向上取整的结果等于(a+b-1)/b向下取整的结果

要证明的问题是:⌈ba​⌉==⌊bab−1​⌋证明过程如下:记akbmifm==0then⌈ba​⌉k⌊bab−1​⌋⌊bkbb−1​⌋kifm!0then1≤m≤b−1⌈ba​⌉k1⌊bab−1​⌋⟺⌊bkbmb−1​⌋⟺k⌊bmb−1​⌋由于1≤m≤b−1,因此b≤mb−1。

2023-04-23 15:06:19 573

原创 把数组连续切分成K段

这是今天网易雷火笔试算法题涉及的一个知识点,考试时由于对python数组对象的引用不熟悉,导致没写出来。结束后写了写,目前没啥问题,先把代码贴出来,有空再来补充完整题面和代码注释。

2023-04-22 17:30:29 259

原创 通过锁的传递理解go互斥锁的值传递

在go中,锁的传递是值传递。即当把一个锁赋给另一个锁时,实际上获取的是这个锁的副本,这个副本也包含了锁的状态。

2023-04-14 14:59:55 128

原创 使用FAISS,从百万级数据中检索百万级数据的topK个最相似的数据

手里有一个五百万的样本数据集,需要为每一个样本从这个样本数据集里检索出与之最相似的20个样本

2023-04-11 13:05:26 661

原创 python查看程序运行的时间

由于跑多模态的深度学习经常要跑很多次,而且一次要跑很长时间,所以这里记录一下怎么用python计算程序的运行时间

2023-04-10 12:40:15 403

原创 package xxx is not in GOROOT报错解决

有几个新建go项目时(比如新建一个项目名为go_project的项目)需要遵守的点:1)在go_project下新建src文件夹,把各种代码文件都存在这个路径下2)设置两个环境变量:3)如果要新建自定义包(比如自定义包A),那么要新建一个名为A的文件夹,然后在这个文件夹下建各种go文件,而且这些go文件的第一行为"package A"但是这种方式每次打开项目时都需要设置两个环境变量,有点麻烦,后续看看还有没有别的办法。

2023-03-24 22:36:09 4220

原创 非递归实现快排

面试官还挺喜欢问的,这里记录一下。

2023-03-17 11:35:59 64

原创 python读取json格式的文件

其实就是用open读取文件,然后进行一个循环,并在每个循环里边用json.loads()把每个json转成字典。

2022-12-18 00:40:21 812

原创 python绘制折线图并保存

1.下面这部分代码是绘图并保存的代码。

2022-07-20 11:34:07 3845

原创 python读取某目录下指定后缀的所有文件

参考文章:1.https://blog.csdn.net/weixin_36670529/article/details/107208026

2022-07-11 17:15:56 2035

原创 python3.7实现给命令行参数传入多个值

比如想设置个参数,它可以接收多个整数值,那么可以在add_argument中设置action=“append”调用方式及结果如下:python3.8中还可以用action=“extend”,这样就不需要挨个值前面都跟一个–arg_name了,具体可查看https://docs.python.org/3.9/library/argparse.html#action参考文章:1.https://blog.csdn.net/qq_38962621/article/details/110579156.....

2022-07-03 16:25:32 1690

原创 使用nltk下的wordnet包时报错zipfile.BadZipFile: File is not a zip file

如果是手动下载并解压的,需要在以下目录中任选一个新建corpora文件夹,然后把解压后的wordnet文件夹放到corpora文件夹中:如果是在代码里用nltk.download(“wordnet”)下载的,可能是因为各种原因下载出错了,没有下载完整,因此只需要在代码里再跑一次download就行...

2022-06-22 15:49:11 1094

原创 python删除字符串中的无意义字符

一个正则匹配式的问题,把下面代码中的remove_chars正则匹配式码住就行输出结果:

2022-06-22 11:37:59 925

原创 用Bert获取句子向量,并计算句子相似度

我用的是sentence-bert,它封装在sentence-transformer中:二、相似度向量相似度有两个度量标准:余弦相似度、余弦距离,其中余弦相似度就是cos,两个向量越像,余弦相似度越大;余弦距离=1-余弦相似度,两个向量越像,余弦距离越小。下面这段代码就是计算余弦距离的结果:参考文章:1.https://blog.csdn.net/u011412768/article/details/86714540...

2022-06-14 16:16:36 3312 1

原创 基于numpy的CNN实现,进行MNIST手写数字识别

主要框架来自于这篇文章:https://blog.csdn.net/qq_36393962/article/details/99354969,下面会以原文来代称这篇文章本文在原文的基础上增加了交叉熵以及mnist数据集的处理,并对卷积层反向传播更新权重的代码进行了一些相应的改动。建议先按原文脉络学习一下相关理论知识(原文讲的非常完整详细,但是个人感觉卷积层反向传播更新参数那部分有问题,卷积层更新参数的原理可参考刘建平前辈的文章),再参考下述实现代码。文章目录零、MNIST数据集读取+layer模板代码一

2022-05-31 12:19:40 1695 5

原创 用Bert做英法机器翻译

过程基本参考自BERT实战——(5)生成任务-机器翻译,结合我个人的数据集在数据处理部分做了些调整,完整代码可见translate.ipynb一、数据处理我的数据集是这样的:第一列是英文,第二列是对应的法文翻译,第三列是文本来源,所以说第三列是不需要的1.首先是读取数据,把前两列存入数组中,并把前90%的数据作为训练集,后10%的数据作为验证集f=open("fra.txt","r",encoding="utf-8").readlines()en=[]fre=[]data=[]for l

2022-05-19 23:41:01 3059 3

原创 用mindspore定义一个双层神经网络拟合抛物面

mindspore(后文简称为ms)目前网上的使用者以及文章太少了,对于像我这种没有阅读官方文档的人来说属实有点不易,这里记录一下我用mindspore实现单层和双层神经网络拟合抛物面的代码。详细代码在https://github.com/yuanzilin/PatternRecognition/tree/main/lab4中的BP_mindspore.ipynb中一、简化版流程主要有5个步骤:1.定义网络结构2.定义损失函数3.定义反向传播网络4.开始训练5.用训练完成的模型对测试集进行推

2022-05-13 18:17:57 410

原创 python绘制三维散点图

和二维的区别主要在于要从mpl_toolkits.mplot3d中载入Axes3D,并用Axes3D来绘制图形import numpy as npimport matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d import Axes3Ddata=np.random.randint(0,27,(9,3))x=data[:,0]y=data[:,1]z=data[:,2]fig=plt.figure()ax=Axes3D(fig)ax.s

2022-05-10 13:13:29 11421

原创 python实现两个数组同时排序

用numpy.argsort函数import numpy as npa=[1,2,3,6,5,4]b=["one","two","three","six","five","four"]b=np.array(b)sorted_indices=np.argsort(a)print(sorted_indices)sorted_b=b[sorted_indices]print(sorted_b)运行结果:参考链接:1.https://blog.csdn.net/junlee87/artic

2022-05-05 01:01:38 2007

原创 用pytorch版Bert获取中文字向量

首先要从https://github.com/ymcui/Chinese-BERT-wwm中下载相应的模型解压到相应目录,比如我下载的是Chinese-Roberta-wwm-ext-pytorch:import torch from transformers import BertTokenizer,BertModelMODELNAME="chinese_roberta_wwm_ext_pytorch"# 加载分词器和模型tokenizer=BertTokenizer.from_pretrai

2022-04-29 17:12:25 1658

原创 python实现GRU并使用torch.nn.GRU验证正确性

用python基本语法以及torch的一些基本数据结构对GRU进行实现如下:import torchimport torch.nn as nnbs,T,i_size,h_size=2,3,4,5input=torch.rand(bs,T,i_size)h_0=torch.rand(bs,h_size)gru=nn.GRU(i_size,h_size,batch_first=True)output,h_n=gru(input,h_0.unsqueeze(0))print(output)

2022-04-26 10:41:37 1248 1

原创 python实现单层单向LSTM

用python的基本语法以及pytorch的一些数据结构实现LSTM,并用torch.nn.LSTM对我自己实现的网络的正确性进行验证,参考自https://www.bilibili.com/video/BV1jm4y1Q7uh/?spm_id_from=333.788bs,T,i_size,h_size=2,3,4,5input=torch.rand([bs,T,i_size])h_0=torch.rand(bs,h_size)c_0=torch.rand(bs,h_size)# 用官方的

2022-04-26 09:40:27 445

原创 python实现单层单向RNN

为了解torch.nn.RNN的算法过程,用python简单实现了一个单层单向的RNN:# input:输入数据,形状为sequence_length*feature_size# hidden_szie:隐藏层的特征数# wih:输入层到隐藏层的权重值,形状为hidden_size*feature_size# bih:输入层到隐藏的偏置值,形状为1*hidden_size# whh:h[t-1]到h[t]的权重值,形状为hidden_size*hidden_size# bhh:h[t-1]到h[

2022-04-19 19:09:04 1017

原创 用SVR拟合圆

一、 实验原理SVR与SVM不同,SVR的样本点只有一类,它的目标是使得所有样本点到最优超平面的总偏差最小,而SVM的目标是让所有样本点到最优超平面的距离最大。求圆的圆心和半径时,先把非线性问题转成线性问题:因此本实验的优化目标为:约束条件为:其中ξ是松弛因子,ε为点到圆的距离偏差。转换成拉格朗日函数为:通过对拉格朗日核心因子(w,m,ξi+,ξi-)进行梯度下降,以及对拉格朗日乘子(αi+,αi-,βi+,βi-)进行梯度上升,即可得到最优的圆。二、 实验过程1. 读取数据im

2022-04-12 15:33:51 720

原创 初次使用GPU,遇到的一些cuda error及解决办法

1.GPU RuntimeError: CUDA error: invalid device ordinal解决办法:可能是在程序的多个地方都定义了使用的cuda编号,即使编号是一样的也会报这样的错误。解决办法是只保留一个2.使用os.environ['CUDA_VISIBLE_DEVICES'] = 'x'指定使用的GPU编号后,实际使用时还是0号GPU解决办法:把这个语句用到所有需要加载参数、数据的语句前,最方便的就是在import各种包时顺便用os.environ[‘CUDA_VISIBLE_D

2022-04-02 23:46:35 5623 3

原创 在Linux服务器上安装cuda11版pytorch

我用的是anaconda安装pytorch1.创建一个新的虚拟环境conda create -n torch_cuda11 python=3.6,这个torch_cuda11是我自己定义的虚拟环境名字另外,删除环境是conda remove -n envs_name --all新建虚拟环境完成后会显示如下指令:2.更新conda的源# 第一步:添加Anaconda的清华镜像conda config --add channels http://mirrors.tuna.tsinghua.edu

2022-03-29 18:33:12 8273

原创 用python把Excel表中不同货币的资金换算成人民币

Excel里可能有货币换算的工具,但是我需要处理的是像下面这样的带数字带文字的表格,所以需要通过python来进行批量处理代码如下,用UTF-8读取中文文件的csv可能会出现很多编码错误,解决办法可以看我这篇文章:解决:python打开csv文件时总是因为编码问题报错import impimport stringimport pandas as pdimport numpy as npfrom string import digitsimport redf=pd.read_csv(r'Pa

2022-02-23 18:09:36 1622 3

原创 解决:python打开csv文件时总是因为编码问题报错

主要是受这篇文章启发:https://www.cnblogs.com/diantong/p/12613204.html1、用记事本打开csv文件2、在记事本中选择“另存为”3、选择“所有文件”、编码方式选“UTF-8”

2022-02-23 16:19:20 2059

原创 python读取csv文件时报错:string ‘\ufeff15.34‘ cannot convert to float

这个报错的关键是这个编码为feff的字符到底是什么,查过python文档后得知是一个字节顺序标记(BOM),有的文档会在utf-8编码文件的开头加上“BOM”,要读取这种文件,应该使用utf-8-sig编码器自动忽略此标记,像下面这样...

2021-11-28 14:30:27 692

清华2017上机题目-扫雷测试用例

清华2017上机题目-扫雷测试用例

2021-03-23

北航软件学院Unix环境高级编程实验指导

北航软件学院Unix环境高级编程实验指导书,主要是Linux系统的入门操作指示。个人觉得对于入门Unix编程还是很有作用的

2019-02-27

CSAPP第二版(中文附目录)

免费下载,北航软件学院必修课程,大头课程,三学分。

2019-02-25

空空如也

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

TA关注的人

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