6 小牛_牛sky

尚未进行身份认证

我要认证

学海无涯

等级
TA的排名 3w+

[学习笔记] 神经网络之三:BERT和相似度(1)

BERT本身提供了句子匹配的功能,它的做法是把相似度任务转化成二分类任务做的,匹配/不匹配。把两个句子先拼接成"[CLS]" + seq1 + "[SEP]" + seq2 + "[SEP]",然后取得[CLS]对应的向量,并经过一个sofmax,最后完成分类。在论文Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks...

2020-03-30 22:35:03

[学习笔记]神经网络之二:使用Bert进行二分类

本篇记录一下如何使用bert进行二分类。这里用到的库是pyotrch-pretrained-bert,原生的bert使用的是TensorFlow,这个则是pytorch版本。本篇文章主要参考了基于BERT fine-tuning的中文标题分类实战的代码以及如何用 Python 和 BERT 做中文文本二元分类?的数据。1.样本数据首先是要训练的文本数据,部分文本内容如下:该文本...

2020-03-23 13:40:24

js jQuery小结

本帖总结一下js/jQuery在一些具体场景中使用时的应用。1.选中table的某一列的值这里以中国农业大学某一个页面为例子,页面缩略图如下:假如这里我只需要获取到所有企业的名称,那么我首先需要定位到这个表格:$('table:eq(27)')这个表格没有特殊的id,因此使用索引来获取到这个表格,之后就可以考虑获取到td了:$('table:eq(27) tr')....

2020-03-21 12:36:06

[学习笔记]神经网络之一:简单实现一个神经网络

这几天开始学习神经网络,本帖为我在读完《Python神经网络编程》后的一个总结,因为我是神经网络的初学者,当出现一些错误或者说法不当时,请多多指正。本文的目的是使用三层神经网络(输入层、隐藏层和输出层,输入层一般只是负责输入)来实现对手写体数字的识别,这里分别采用《Python神经网络编程》中的代码和Pytorch来实现。训练数据集:http://www.pjreddie.com/medi...

2020-03-15 12:33:42

云服务器下docker部署scrapyd之二:使用Nginx对Scrapyd添加验证

前一篇帖子(云服务器下docker部署scrapyd)中介绍了如何把Scrapyd容器化,并部署在云服务器中。但是并没有添加用户验证,也就是说,如果该Scrapyd是可以任何人访问的,那么只要知道IP地址和端口,总会有人想拿它做坏事,比如我的服务器中就出现了以下的情况:该图摘自我个人的redis容器,情况与scrapyd相似redis解决相对比较简单,只需要在redis.conf配置文...

2020-02-27 09:34:36

[补充] 云服务器下docker部署scrapyd 添加日志解析和supervisor

之前的一篇帖子里曾经在Ubuntu云服务器上部署了Scrapyd容器,帖子如下:云服务器下docker部署scrapyd目前需要对scrapyd添加了日志解析,该库的名称为logparser,它被用作在scrapyweb中解析scrapyd的日志。这里不介绍scrapyweb,感兴趣的可以去github上了解。logparser库的工作原理是每隔一段时间(默认10s)查看一下日志文件夹,然...

2020-02-22 13:15:01

阿里云服务器下使用docker部署jupyter

最近计划了解faiss,但是faiss无法在windows下安装,因此打算把faiss部署到服务器上进行一些简单的测试,然后学长就推荐了一个交互式笔记本jupyter。这里主要记录一下如何在镜像里部署jupyter。不使用Docker直接部署使用conda安装jupyterconda install jupyter创建一个配置文件:jupyter notebook --...

2020-01-23 11:47:36

python下对文档(*.docx)和表格(*.xlsx)的简单操作

1. 根据模板批量生成文档想要运用python来编辑word是有些难度的,主要是因为文档涉及到的因素比较多,仅仅是字体就有颜色、大小、加粗等等属性,这也就造成了使用python“无中生有”一个文档的困难性。这里推荐一个使用模板批量生成文档的包:mailmerge。1.1 制定模板文件docx我个人使用的是WPS,office的Word操作大同小异。首先点击插入,之后点击...

2019-11-06 09:17:52

SDL游戏开发之七-虚拟摇杆

当下的智能机除了音量键、Home键外,几乎没有多余的按键,因而有一部分游戏提供了虚拟摇杆。SDL2.x并没有提供虚拟摇杆相关的代码,不过实现起来并不算困难;虚拟摇杆包括绘图和事件处理:前者提供视觉效果,后者则捕获事件并作出响应。示例结果如下:图1-虚拟摇杆演示程序本示例中大约有四个类:Game类 主要包含了初始化、事件处理、纹理绘制等功能,是本示例的核心类; Player...

2019-10-17 19:34:19

无监督学习 k-means算法

一、无监督学习无监督学习是机器学习算法中的一种。监督学习的目的主要是对数据进行分类和回归预测,它主要是通过已知推测未知,大部分监督学习算法有一个训练模型的过程;相对于监督学习,无监督学习则是主要着重于数据的分布特点,与有监督学习不同,无监督学习并没有训练的过程。二、 聚类针对给定的样本数据,聚类算法会根据它们的特征相似度或距离,把相似的数据划分为若干个簇中。相似的样本划分到相同的簇中,...

2019-10-09 10:16:30

SDL游戏开发之六-简单的SDL程序

1.最简单的SDL程序一般的游戏在运行过程中的大部分操作都是在一个大循环里,在这个循环里进行着事件监听、绘制以及逻辑处理等。而像网络通信或者是文件读取等这些比较耗时或者堵塞的操作一般会放到子线程里面。流程图如下:图1-游戏流程图先创建窗口和渲染器;如果创建成功,则进入大循环里;否则则直接退出; 进行逻辑处理、绘制、事件处理等(注意:以上三个是不分先后的); 如果发现有退出信号,...

2019-10-05 06:47:19

SDL游戏开发之五-解析并使用GIF

在游戏开发中,使用的图片一般情况下的格式为PNG,在我看来PNG有着以下几个好处:不错的压缩比 alpha通道(支持透明) 无损压缩以上的几个特性使得PNG在游戏开发中大放异彩。另外,主流就是使用PNG+TexturePacker,把碎图整合成一张大的图片(一般是POT Power Of Two,图片的宽和高是2的幂),然后再在程序中使用。这样做的好处主要是为了兼容旧的设备、方便对齐处理...

2019-10-02 06:58:14

最长公共子序列

1.定义给定一个序列,在删去若干个元素后得到的序列即为子序列。图1 子序列如图1所示,序列{A, B, C, B, D, A, B}的其中一个子序列就是{B, C, B, A}。图2 公共子序列如图2,序列{A, B, C, B, D, A, B}和序列{B, D, C, A, B, A}的其中一个子序列就是{B, C, B, A},并且这个公共子序列是最长公共子序列(不唯一)...

2019-09-10 20:23:08

矩阵连乘

1.两个矩阵乘积所需要的计算量首先需要考虑计算两个矩阵的乘积所需要的计算量。矩阵A和矩阵B可乘的条件是A的列数等于B的行数。如果A是一个p*q矩阵,B是一个q*r矩阵,那么AB的乘积C则是一个p*r矩阵。大致代码如下:#include <iostream>using namespace std;/*两个矩阵乘法的标准算法*/void matrixMultip...

2019-08-13 21:31:15

求第k小元素

题目:给定线性序集中n个元素和一个整数k,其中1<=k<=n,要求找出这n个元素中第k小的元素。如果将这n个元素线性序排列时,如果不存在重复的数或者求第k个元素的时候,那么第k个位置即为要找的元素。当k = 1时,要找的就是最小值;而当k = n时,则要找的则是最大值。凭借着快速排序中的划分函数,可以实现上面的功能。对于序列a[p : q],分治算法rando...

2019-08-09 20:51:21

排序算法

1.插入排序插入排序是比较简单粗暴的排序算法之一,它的思路大致如下:把待排序数组分成两部分,长度为1和长度为n-1的子数组,(长度为1的子数组此时已经是排序好的) 从第二个数组中按序拿出一个元素,并插入到第一个子数组的合适位置,使得第一个子数组依然是排好序的 重复步骤2,直至排序完成。它的代码相对也比较简单,如下:/** * 插入排序 * @param nums: 待排序数...

2019-08-08 20:24:03

分治法-快速排序

1.快速排序快速排序是冒泡排序的一种改进,它平均的时间复杂度为O(nlng)。快速排序的思路如下:对于输入的数组a[p: r]分解:以a[p]作为基准值,将数组分为三段 a[p:q-1] a[q]和a[q+1: r],并且满足a[p: q-1]的值小于等于a[q],而a[q+1:r]的值大于等于a[q]。下标q在划分过程中确定。 递归:递归调用快速排序分别对a[p:q-1]和a[q+...

2019-08-07 21:40:16

分治法-合并排序

1.合并排序排序算法是对一组数进行顺序排序或者逆序排序,而合并排序就是排序算法的一种。合并排序用到了分治策略实现对元素进行排序。合并排序的基本思想:把待排序的n个元素分解成n组,也就是每组一个元素;之后对分好的组进行两两合并(无配对的则不操作),以此类推。以序列{8, 3, 2, 6, 7, 1, 5, 4}为例,排序过程如下:排序过程图片来源合并排序又叫做2-路归并排序...

2019-08-07 20:13:02

分治法

1.分治法分治法的基本思想就是将一个规模为n的问题分解成k个规模较小的子问题,而、这些子问题相互独立且与原问题相同;子问题的解合并后可以得到原问题的解。它的一般的算法设计模式如下:divide-and-conquer(P){ if (|P| <= n0) adhoc(P) divide P into smaller subinstances P1, p2, ......

2019-08-03 09:32:04

LeetCode题目-合并K个排序链表

合并K个排序链表是我在刷LeetCode的时候遇到的题目,描述大致如下:合并k个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。输入:[ 1->4->5, 1->3->4, 2->6]输出: 1->1->2->3->4->4->5->6一开始的思路是类似于合并两个有序链表的思路,就...

2019-08-01 21:51:48

查看更多

勋章 我的勋章
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 阅读者勋章Lv1
    阅读者勋章Lv1
    授予在CSDN APP累计阅读博文达到3天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。