自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Failed to load module script: Expected a JavaScript module script but the server responded with a MI

slidev部署踩坑

2023-02-16 02:48:43 21837

原创 Python3的字符串编解码

文章目录`\u`开头的已经转义的没有转义(原生字符串)`\x`开头的带转义的不带转义的Python默认使用utf-8编码,但是在诸多的网络编程中,我们经常会拿到编码不为utf-8的字符流。因此,在此情况下,有必要了解Python3对于字符串的编解码。网上有许多的教程都是对于Python2的,那些都不适用于Python3\u开头的分为两种情况已经转义的如果已经转义的,不需要去管,Python内部会自动转码text = "9\u201323 February"# 如果看它不爽,可以通过两种方

2022-04-15 22:22:14 1208

原创 CSS半透明磨砂效果实现

CSS实现一个带颜色的磨砂效果

2022-03-07 10:21:13 9201 1

原创 manimgl渲染出现线条缺失的问题(已解决)

问题出现场景之前给电脑换了一块显卡,结果,再运行我的manim动画的时候,我发现渲染的结果出现了缺失!比如运行正常的hello world时,圆形的轮廓没有渲染出来。而且入场的矩形完全没有渲染出来!正常的渲染结果应该如下:问题原因已经解决。这是由于python的默认显卡为集显与manimgl使用的驱动不符或者算力不够导致的。猜测如果你使用的显卡性能落后,而也会出现类似的情况。解决方法将python默认使用的显卡改成独显即可,下方演示win11 dev版本的修改过程,其他平台用户可仿照:

2022-01-12 17:18:24 1204

原创 vim快捷键

多行删除和复制全部删除:Esc→\to→gg→\to→dG全部复制:Esc→\to→gg→\to→ggyG全部高亮:Esc→\to→gg→\to→ggvG或者ggVG单行复制:Esc→\to→yy单行删除:Esc→\to→dd粘贴:Esc→\to→p

2021-08-20 15:17:24 104

原创 Nuitka打包PyTorch项目

前提概要最近的暑期课程需要实现一个人脸检测,并做成有图形用户界面的软件,和队友商量后,决定我将核心部件——人脸检测封装成一个命令行工具。于是乎,我就有了将PyTorch项目打包成可执行文件的应用需求,关于Python打包,常用的工具包有Pyinstaller和Nuitka。由于Nuitka给我感觉更佳,于是乎,这篇文章就探讨如何将比较大的PyTorch项目打包成可执行文件。当然,pytorch本身提供了一套成熟的部署方案,但是最近没时间去学Nuitka的安装具体安装过程可以看看这篇文章:Pyt

2021-07-22 14:13:13 3281 2

原创 HTML/CSS实现毛玻璃特效的两种方法

我想要设置类似于苹果和windows10的毛玻璃效果,比如这样:其实就是一圈高斯模糊,我认为底层可以实现的方式有两种:高斯模糊和领域池化。以下实现视觉上的毛玻璃效果有两种,后者为伪毛玻璃,而且在视觉效果上比较适合用在纯色或者渐变纯色的背景上。方法一:使用blur在网页设计中将对应的组件的backdrop-filter属性设置为blur即可,blur的参数为高斯模糊的半径,一般设置为50px即可。给个小demo:<!DOCTYPE html><html lang="en"&gt

2021-06-09 23:41:07 14527 5

原创 p进制转10进制,10进制转p进制(C++/Python)

思路很简单,首先要注意任何数的p进制都是基于10进制进行定义的。回顾一下p进制数(anan−1⋯a0‾)p(\overline{a_na_{n-1}\cdots a_0})_{p}(an​an−1​⋯a0​​)p​的定义式:(anan−1⋯a0‾)p=∑i=0naipi(\overline{a_na_{n-1}\cdots a_0})_{p}=\sum_{i=0}^n a_i p^i(an​an−1​⋯a0​​)p​=i=0∑n​ai​pi其中右侧的计算都是基于十进制的。我们再将右侧的十进制结果记作

2021-03-24 23:29:46 1248

原创 在overleaf中使用bibtex引用参考文献

最近在挑选写tex的平台,挑来挑去,个人感觉overleaf给我带来的体验感是最舒适的。不过由于对内部的文件组织和make进行了一层封装,所以与一般的本地平台编译tex会有一点不同。此处写一下在overleaf中使用bibtex的方法。在tex中使用bibtex引用文献是一件很舒适的事,毕竟这是tex的优点之一(要是tex比word难用,我干什么不去用word,hhh)第一步,我们创建一个.bib文件,名字随便起,我这边起为reference.bib。然后打开谷歌学术,搜索你想要引用的文章,并找到

2021-02-25 13:40:52 40926 18

原创 Python根据歌曲id爬取网易云音乐歌词

在使用requests爬取网易云音乐的歌词时,直接爬取该网页的url,再经过bs4一顿解析后,你会发现,你找不到你想要的歌词,这是因为,网易云音乐内部并不是直接把歌词和音乐挂载在网页上的,而是通过内部的阿贾克斯请求获取歌词的。因此我们可以调取网易云内部的API得到数据包,用json来解析之,便可以获取我们想要的歌词了。下面只是给出最关键的函数,后续细枝末节的处理就不写了,相信都这篇文章的同学应该都会:def get_lyric(song_id): headers = { "use

2021-02-15 13:19:53 3222 3

原创 pipreqs一行命令整理得到当前项目的requirements.txt

文章目录为什么需要pipreqs安装与使用注意事项(如果你运行失败了请看这里)为什么需要pipreqsrequirements.txt是一个合格的python项目、库或者软件包必备的文件,里面涵盖了所有项目使用到的第三方库以及对应的版本号。对于拿到requirements.txt的用户来说,直接一行pip install -r requirements.txt,毫不拖泥带水,一行安装完所有需要的依赖库。但是对于开发者来说,去写requirements.txt可能是一个费时费力的事情,毕竟你或许记得正在

2021-02-10 20:52:18 737

原创 vscode中运行python时的路径问题

如果你在vscode中中使用python进行对文件组织,一定遇到过这个问题。比如我的文件组织结构如图所示:我在.\src\test.py中想要引入data中的数据,再pycharm中,我们会写成open("../data/data.txt", "r"),那是因为pycharm运行python文件是默认在python文件所在的目录下运行的,然而我们的这个项目中,是从src文件夹的外层,也就是"."根目录运行的,所以应该使用open("./data/data.txt", "r")。当然,如果你嫌麻烦,还有一

2021-01-29 22:37:10 4142

原创 ffmpeg指令笔记

文章目录mp4转换为gif基本命令截取指定片段转换为gif调整分辨率作为一个个人笔记,持续记录ffmpeg常用指令,笔者用到时才会更新。mp4转换为gif基本命令ffmpeg -i .\robotmove.mp4 -r 15 output.gif将robotmove.mp4转换为output.gif,每秒的帧数为15。截取指定片段转换为gifffmpeg -t 3 -ss 00:00:02 -i small.mp4 small-clip.gif上述命令为从视频中第二秒开始,截取时长为3

2021-01-28 15:13:57 200

原创 PyBullet开荒笔记

文章目录安装第一个demo查看机器人信息基于gazebo_ros的机器人开发不是很适合RL的研究,所以我看了看网上大致主流的几款机器人模拟的平台。一般来说,大家会在gym上来做RL的第一个实例,后来我查到opencv在gym的基础上,基于bullet物理引擎开发了一款机器人仿真平台:roboschool,但是我在他们的github主页上发现roboschool已经被丢弃了,失望之余,一个新的链接给了我希望,这也就是下面目前开始学习的PyBullet。安装首先最大的坑就是安装啦,这也是PyBullet

2021-01-25 22:10:31 2841

原创 Ubuntu: No module named pip

最近在用python2.X为ros写RL的测试脚本,总之发现Ubuntu上的python2使用pip时出现No module named pip,但是我的python2是可以成功启动的。于是乎,我先是$ python -m ensurepip然后蹦出来一堆:ensurepip is disabled in Debian/Ubuntu for the system python.Python modules For the system python are usually handled by

2021-01-24 23:35:31 3157

原创 ROS(1) 工作环境与功能包的创建

首先进入主目录,先创建工程simulation_ws(ws是work space的缩写,只是起名习惯,使用其他的名字也可以),并在study_ws下创建src文件夹:~$ mkdir simulation_ws && cd simulation_ws/~/simulation_ws$ mkdir src && cd src/然后在simulation_ws下编译整个项目:~/simulation_ws/src$ cd ..~/simulation_ws$ .

2021-01-24 19:39:42 271

原创 有关QSignalMapper的只言片语

之前从来没用过Qt中有关信号映射的API,因为我玩得还是比较浅的,最近两天正好在系统学习Qt,看到了QSignalMapper的使用。一般情况下,在使用connect连接信号与槽时,如果连接的槽函数有特定的参数,或者你想要把与发射这个信号相关联的某个对象作为参数传入槽函数中,你完全可以使用lambda表达式配合目标槽函数使用。不过Qt提供了一种更加方便的机制,也就是信号映射,直接把你想要作为参数传入的对象和信号本身构成映射。然后你只需要将信号与相应的槽函数绑定即可。上面讲得还是比较抽象,可以看个具体的例

2021-01-18 14:45:03 170

原创 VS开发Qt应用时遇到“找不到VCRUNTIME140D_APP.dIl,无法继续执行代码”的错误

反正在VS中运行Qt项目时告诉你找不到dll的错误,我看了一下步骤,qmake生成可执行文件没问题,在运行的时候出了问题,所以和我的程序本身没关系,而是和我的开发环境有关系。因为我发现其中出现了APP的字样,所以我猜测是不是Qt关于安卓开发的包的编译器的环境变量与正常的Qt中的MSVC编译器的环境变量起冲突了。所以我打开了Path环境变量列表看看Qt的我设置了哪些:然后我将除了msvc2017_64和mingw73_64外的其余Qt的编译器的环境变量都删了,然后重新build和run项目,就好了。

2021-01-17 21:11:01 4257 5

原创 排序算法大汇总(C++实现)

文章目录直接插入排序(insert sort)折半插入排序(binary insert sort)希尔排序(shell sort)冒泡排序(bubble sort)快速排序(quick sort)简单选择排序(selection sort)堆排序(heap sort)归并排序(merge sort)基数排序(radix sort)当作考试前复习一下了。都是非递归写法实现的,都只实现升序。此处需要排序的都是int型的数组,而且都是从0开始存的数字。所有的排序函数都只需要两个参数:数组的头指针和数组的长度。

2021-01-07 15:59:48 187

原创 C++快速实现STL中的优先队列

数据结构课设被我们做成了造轮子课设。为了堆优化的Dijkstra算法,我把优先队列顺便实现了一下。废话不多说,直接上代码。我写的是小顶堆,如果你需要使用大顶堆,有两种方法。1. 将程序中的几个<改成> 2. 存入的数据全部取负数,需要拿出来时再取负数由于STL中的priority_queue是通过vector实现的,所以本处代码中优先队列数据的载体也是vector。先上头文件和类声明:#include "iostream"#include "vector"using namesp

2020-12-29 17:33:28 394

原创 ROS小错误汇总(持续更新)

最近在玩ROS,写一点小错误的汇总。关于rosrun执行的文件找不到的错误检查是否把当前workspace的devel文件夹下的setup.bash文件加入环境变量,如果没有,则通过source <setup.bash的路径>添加。我的melodic似乎有一个小bug,对于新创建的功能包,即便将启动脚本加入了环境变量,还是无法被rosrun找到。我的方法是通过rospack profile指令来查看当前所有的功能包。不知道为什么,执行完这个指令后就解决了问题。下面这个错误是个妈见打的

2020-12-24 11:59:23 431

原创 使用按位异或交换两个数字的问题

在C++中,如果要交换两个变量的值,我们通常会创建一个临时数据以它为桥梁来交换。熟悉位运算的同学也会这么做:int a = 1, b = 2;a ^= b;b ^= a;a ^= b;这样做省去了额外变量的创建,显得比较优雅。但是这么做有一个问题:如果a==b,那么交换完后的a与b就都是0了,这是因为两个相同的数字按位异或的结果是0。因此,三次按位异或的方法只适用于交换两个不同的数字,所以,在一些算法设计中,为了避免一些神奇的bug,请避免使用三次异或。...

2020-12-23 16:51:09 817

原创 二叉树的基本操作(C++实现)

文章目录前言创建二叉树展示二叉树销毁二叉树判断是否为完全二叉树计算树的高度计算树的叶子数量计算树的宽度层次遍历前序遍历递归写法非递归写法中序遍历递归写法非递归写法后序遍历递归写法非递归写法输出根节点到所有叶子节点的路径(递归)输出根节点到所有叶子节点的路径(非递归)计算二叉树的公共祖先(lca)递归写法非递归写法验证前言二叉树可以说是树形数据结构中最基础的,且在多种领域都有应用(比如语法树,二值决策树),熟悉其各种操作是必须的。本文通过实现几个基本的函数来实现一个基本的二叉树:#include &lt

2020-11-21 20:33:00 3174 1

原创 多叉树的基本操作(C++实现)

文章目录前言创建多叉树展示多叉树销毁一颗多叉树前序遍历(递归&非递归)递归写法非递归写法后序遍历(递归&非递归)递归写法非递归写法层次遍历计算多叉树的高度计算多叉树叶子节点的个数打印输出根节点到所有叶子节点的路径(深度优先-递归)打印输出根节点到所有叶子节点的路径(基于后序遍历-非递归)打印输出根节点到所有叶子节点的路径(基于层次遍历-非递归)输出根节点到叶子节点所有路径中最长的那些路径递归实现节点的插入删除子树递归实现最近公共祖先查询前言我们都知道如何表达一颗二叉树:使用结构体记录每个

2020-11-12 00:40:17 13145 4

原创 走迷宫的递归与非递归写法

递归解法走迷宫的递归走法很好理解:假设我们已经写好了搜路径的函数dfs。那么我们只需要建立相邻两个状态的递推关系就行。递推关系很简单:已搜长度为n时,在当前走到的点上搜另外四个方向,每搜到一个可行方向,则使用n+1时的dfs。需要注意的有两点:开头需要将起点放入记录路径的数组中。起点需要设为不可通行(否则会出现很多经过两边起点的路径)。dfs时,需要先将当前点设为不可通行,退出递归时,再需要将当前点设为可通行。#include <iostream>#include <cs

2020-10-30 12:50:52 1000

原创 汉诺塔的递归与非递归实现(C++实现)

汉诺塔绝对是递归最经典的例子,具体的解释不多说了,直接上代码:#include <iostream>#include <cstdio>#include <cmath>using namespace std;void move(int id, char x, char y){ printf("%d : %c -> %c\n", id, x, y);}void hanoi(int n, char A, char B, char C){ if (

2020-10-30 00:01:04 2012

原创 python处理音频文件的模块——wavio

wavio模块介绍wavio是一个实现wav文件读写的模块,最近正好在研究计算机听觉,需要一个能够轻松读写音频的库或者模块,网上貌似都是scipy的音频模块或者wave,但是这两者都有点问题。后来在某个不知名的网站上遇到了wavio这个库,作者也是因为不满意scipy的音频处理库,一怒之下写的这个模块。这个模块需要额外安装,直接通过pip指令就可以了。wavio.read()实现读入开门见山,这个模块只有两个函数wavio.read()和wavio.write()。一读一写。选择这个库还有一个原

2020-10-22 18:43:01 1752 2

原创 C++后缀表达式实现eval

后缀表达式又称为逆波兰表达式,在计算机解析算式字符串上有很大的应用。比如大家熟知的Python和JavaScript中的eval()函数,可以很方便地计算算式字符串的值:>>> infix = "1+(2+4)*8">>> eval(infix)49这个强大的功能便是通过后缀表达式实现的,下面,我们可以在C++中实现这个函数:首先导入需要的库:#include <iostream>#include <stdio.h>#includ

2020-10-17 17:56:16 3268 2

原创 PyTorch中的pack_padded_sequence和pad_packed_sequence

在pytorch中为什么会使用pack_padded_sequence和pad_packed_sequence,讲一句话的id序列直接嵌入再跑一遍RNN不香吗?举个简单的例子:import torchfrom torch import nn# 输入的句子的id序列txt_id_seq = torch.tensor([[3,2,1,0], [2,1,0,0], [5,0,0,0]])

2020-10-01 20:59:28 817 1

原创 PyTorch创建张量的四种方法

pytorch中创建张量的方法一共有4种:torch.tensor()、torch.Tensor()、torch.as_tensor()和torch.from_numpy()。一、创建tensor默认类型的不同假设我们从一个numpy数组出发,创建一个tensor:>>> a = np.array([1, 2, 3])>>> t1 = torch.Tensor(a)>>> t2 = torch.tensor(a)>>> t

2020-09-25 19:23:03 7693 4

原创 pytorch训练时accuracy收敛缓慢的可能原因

今天在使用pytorch搭建LSTM网络跑THUC数据集时,发现每遍历一遍50000条数据,准确率只增长了0.001-0.01。后来发现是学习率设置小了。提高学习率后,模型在前几个epoch就快速收敛了。这种小错误以后要避免呀!=_=...

2020-09-19 00:06:17 1886

原创 ValueError: too many dimensions ‘str‘

使用torchtext读取预处理好的文本csv文件时遇到了报错,这是我的代码import torchimport torch.nn as nnimport torch.utils.data as Datafrom torchtext import dataif __name__ == "__main__": mytokenize = lambda x : x.split() # str -> list[str] # 创建预处理对象 TEXT = data.Fi

2020-09-10 12:25:07 26089

原创 rasa_nlu踩坑经历

需要使用rasa_nlu来搭建对话程序,但是介于“人见人爱”的tensorflow总喜欢给新老用户一些“不一样”的感受,再加上sara_nlu的维护者貌似还没有更新tensorflow2.X下的库,所以如果你像笔者一样,直接安装tensorflow的最新版本,那么直接运行一下程序可能会报错:from rasa_nlu.training_data import load_datafrom rasa_nlu.model import Trainerfrom rasa_nlu import configf

2020-09-09 20:30:52 836

原创 spacy语言模型安装踩坑经历

萌新只是想做一个chatbot,文本分析时安装spacy时踩了两个小时的坑。终于找到了行之有效的方法。相信如果按照官方的安装方法安装好了,并且运行没有报错,你就不会来看这篇博客了吧=_=。我就直接写做法吧。在安装了最新版的spacy库后,点击这个链接。截图如下。模型开头字母的代表语言,比如en代表英语,es代表西班牙语,zh代表中文。下载后缀为sm的就行,比如需要英语的模型,那么下载en_core_web_sm-2.3.1。这里需要注意,务必下载最新版的语言模型,否则正则表达式模块会报错。下载下来

2020-09-08 22:39:19 3621 8

空空如也

空空如也

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

TA关注的人

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