文章

C++ 配置 libtorch 环境

前置条件 # 显卡驱动 # 在命令行输入nvidia-smi查看驱动信息,如果信息异常或 CUDA 支持版本较低的话 前往下载驱动 plaintext 复制 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 +-----------------------------------------------------------------------------------------+ | NVIDIA-SMI 555. Driver Version: 555. CUDA Version: 12. | |-----------------------------------------+------------------------+----------------------+ | GPU Name Driver-Model | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |=========================================+========================+======================| | NVIDIA GeForce RTX Ti WDDM | 00000000:01:00. On | N/A | | N/A 63C P 23W / 80W | 1117MiB / 6144MiB | 2% Default | | | | N/A | +-----------------------------------------+------------------------+----------------------+ +-----------------------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=========================================================================================| | N/A N/A C+G ...2\Enterprise\Common7\IDE\devenv.exe N/A | | N/A N/A C+G ...nt.CBS_cw5n1h2txyewy\SearchHost.exe N/A | +-----------------------------------------------------------------------------------------+ CUDA Toolkit # 前往下载 CUDA Toolkit CUDA 的版本需要小于等于驱动中的 CUDA Version 重点!!这里的 CUDA 版本需要和 LibTorch 使用的 CUDA 版本一致,建议先确定好 LibTorch 要使用的 CUDA 版本 下载完成后无脑下一步即可,默认安装目录C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\[version] 验证安装 在命令行输入nvcc --version查看 CUDA 版本信息 在命令行运行 [安装目录]\extras\demo_suite 目录下的 bandwidthTest.exe、deviceQuery.exe,确保在最后都有输出 Result = PASS cuDNN # cuDNN(NVIDIA CUDA® Deep Neural Network library) 是 NVIDIA 专门针对深度神经网络(Deep Neural Networks)中的基础操作而设计基于 GPU 的加速库 ...

5 分钟 · 2489 字 · Lin

Hugo-Hahah 主题文章配置

文章基础配置 # yaml 复制 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 # 标题 title: # 链接标题,在标题很长时用到 linkTitle: # 描述 description: # 摘要,如果为空自动截取文章内容 Summary: # 隐藏摘要 hideSummary: false # 权重 weight: 1000 # 是否是草稿 draft: false # 日期 date: 2000-10-12:00:00 # 发布日期 publishDate: 2000-10-12:00:00 # 过期日期 expiryDate: 2000-10-12:00:00 # 最后修改日期,enableGitInfo 设置为true后会自动设置成 git 提交日期 lastmod: 2000-10-12:00:00 # 别名,用于重定向 (比如: /post/[aliases]/ 会重定向到当前页面) aliases: - aaa # 页面链接 url: /aaa # 标签 tags: - tag1 - tag2 模板查找配置 # yaml 复制 1 2 3 4 # 布局,该设置会优先去找 test.html 模板 layout: test # 类型,该设置会优先在 test 目录下去找模板 type: test 自定义配置 # yaml 复制 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 # 语言 langs: - C++ # 关键字 keywords: - key1 - key2 # 分类 categories: - category1 - category2 # 系列信息 seriesInfo: # 系列id id: # 序号 order: 0 # 作者 authors: - author1 - author2 # 显示面包屑导航 ShowBreadCrumbs: true # 隐藏元数据(比如作者、发布日期等) hidemeta: false # 显示文章阅读时间 ShowReadingTime: true # 显示文章字数统计 ShowWordCount: true # 显示作者 showAuthor: true # 显示原文章信息,用于显示转载自哪里 showCanonicalLink: true # 原文章链接 canonicalLink: # 显示目录 showToc: true # 打开目录 tocOpen: false # 显示文章导航链接(上/下页) showPostNavLinks: true # 禁用分享功能 disableShare: false # 禁用锚定标题 disableAnchoredHeadings: false # giscus 评论信息 giscusCommentsInfo: enabled: true # 在站内搜索结果中隐藏页面 searchHidden: true # 从 home 页中隐藏,值只能是true/false hiddenInHomeList: false # 文章封面 cover: # 封面图片 image: "" # 图片的替代文本 alt: "" # 封面标题,描述 caption: "" # 指示图片路径是否相对于当前文件 relative: false # 在列表中隐藏封面 hiddenInList: false # 在文章页面中隐藏封面 hiddenInSingle: false # 文章编辑链接信息 editPost: # 链接(示例链接指向githu的修改) url: https://github.com/[YourName]/[Repo]/edit/master/src/content # 将文件路径附加到编辑链接 appendFilePath: true # 禁用编辑 disabled: false # 在新页面打开 openInNewPage: false hugo 内置模板 Open Graph 的配置(一般用不到) # yaml 复制 1 2 3 4 5 6 7 8 9 # 声音文件 audio: - "default.mp3" # 图像文件 images: - post-cover.png # 视频文件 videos: - video.mp4

2 分钟 · 777 字 · Linlccc

Windows 之奇技淫巧

启动开机自动解锁 # Ctrl + R 打开运行,输入 Control Userpasswords2或 netplwiz 取消选中 “要使用本计算机,用户必须输入用户名和密码” 如果没有该选项执行以下操作 打开注册表 进入路径 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\PasswordLess\Device 将 DevicePasswordLessBuildVersion 的值修改成 0 然后重新执行以上操作 启动程序不提示管理员允许 # 按下 Win 键输入 用户账户控制设置 将通知修改成 “从不通知” 修改 Windows 右键菜单 # 执行以下指令然后重启计算机 ...

2024-09-11 · 1 分钟 · 317 字 · Lin

常用软件

基础工具 # 7z 压缩 TrafficMonitor 任务栏数据显示 PowerToys Windows 增强工具 ListArr 文件搜索 Foxmail 邮件管理 NeatDownloadManager 下载管理 Ditto 粘贴板 Qttabbar Windows文件管理器多标签 浏览器 # Google Chrome 编辑器 # Visual Studio VS Code Notepad++ ...

2024-05-10 · 1 分钟 · 125 字 · Linlccc

在 Vue 中使用 Axios

axios.ts # ts 复制 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 import axios from "axios"; // 文档:https://github.com/axios/axios#request-config // axios 全局默认配置 // axios.defaults.baseURL = process.env.baseURL || process.env.apiUrl || 'https://api.apiopen.top/';//设置默认请求路径 // axios.defaults.headers.common['Authorization'] = AUTH_TOKEN; // axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'; // 自定义实例配置 const config = { // baseURL: process.env.baseURL || process.env.apiUrl || 'https://api.apiopen.top/' // timeout: * 1000, // 超时 // withCredentials: true, // 检查跨域访问控制 }; axios.create(config); // 添加请求拦截器 axios.interceptors.request.use( (config) => { console.log("请求全局拦截"); // 请求之前处理 return config; }, (error) => { // 处理请求错误 return Promise.reject(error); }, ); // 添加响应拦截器 axios.interceptors.response.use( (response) => { // 处理响应数据 return response; }, (error) => { // 处理响应错误 return Promise.reject(error); }, ); export { axios }; export default (app: any) => { app.config.globalProperties.$axios = axios; }; main.ts # ts 复制 1 2 3 4 5 // 导入封装的axios import installAxios from "./axios"; const app = createApp(App); installAxios(app); // 使用axios api.ts # 使用 axios 制定接口函数 ts 复制 1 2 3 4 5 6 7 8 9 10 11 // 导入封装的axios import { axios } from "./axios"; // 调用接口1 export const api1 = async (params: any) => { return axios.get("/api/api1", { params: params }); }; export const api2 = async (params: any) => { return axios.post("/api/api2", { params: params }); }; test.vue # 调用接口 ts 复制 1 2 3 4 // 导入api import { api1 } from "./api"; api1(params).then((res) => console.log(res));

2024-05-07 · 1 分钟 · 477 字 · Linlccc

常用SQL

DCL(Data Control Language)数据控制语言 # DCL 在 mysql 中可以正常使用其他数据库没测试 用户管理 # sql 复制 1 2 3 4 5 6 -- 查询用户 select host,user from mysql.user; -- 添加用户 create user '用户名'@'主机名' identified by '密码'; -- 删除用户 drop user '用户名'@'主机名'; 权限管理 # sql 复制 1 2 3 4 5 6 7 8 9 10 11 12 13 14 -- 查询权限 show grants for '用户名'@'主机名'; -- 查询 root 用户权限 show grants for 'root'@'%'; -- 给予权限 grant 权限列表 on 库名.表名 to '用户名'@'主机名'; -- 给 user授予所有权限 grant all on *.* to 'user1'@'localhost'; -- 撤销权限 revoke 权限列表 on 库名.表名 from '用户名'@'主机名'; -- 撤销 user的所有权限 revoke all on *.* from 'user1'@'localhost'; DDL(Data Definition Language)数据定义语言 # 操作库 # sql 复制 1 2 3 4 5 6 7 8 9 10 11 12 13 14 -- 查看所有数据库 show databases; -- 查看数据库的定义信息 show create database 库名; -- 创建库 create database 库名; -- 检查库是否存在,不存在则创建 create database if not exists 库名; -- 修改数据库字符信息 alter database 库名 character set utf8; -- 删除数据库 drop database 库名; 操作表 # sql 复制 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 -- 查看表结构 desc 表名; -- 查看创建表的SQL语句 show create table 表名; -- 创建表 create table 表名( id int, name varchar(32), age int , score double(4,1), birthday date, insert_time timestamp ); -- 修改表名 alter table 旧表名 rename to 新表名; -- 删除表 drop table 表名; -- 检查表是否存在,存在则删除 drop table if exists 表名; -- 添加一列 alter table 表名 add 列名 数据类型; -- 删除列 alter table 表名 drop 列名; DML(Data Manipulation Language)数据操作语言 # 插入 insert into # sql 复制 1 2 3 4 -- 写列名 insert into 表名(列名1,列名2,...列名n) values(值1,值2,...值n); -- 不写列名 insert into 表名 values(值1,值2,...值n); 删除 delete # sql 复制 1 2 3 4 5 6 -- 删除表中数据 delete from 表名 where 列名 = 值; -- 删除表中所有数据 delete from 表名; -- 删除表中所有数据(直接删除表,再创建一张一样的表) truncate table 表名; 修改 update # sql 复制 1 2 3 4 -- 不带条件的修改(修改所有行) update 表名 set 列名 = 值; -- 带条件的修改 update 表名 set 列名 = 值 where 列名 = 值; DQL(Data Query Language)数据查询语言 # 基础关键字 # sql 复制 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 -- 查询年龄大于等于小于等于30 -- &&(并且) select * from 表名 where age >= 20 && age <= 30; -- and(并且) select * from 表名 where age >= 20 and age <= 30; -- between..and(之间) select * from 表名 where age between 20 and 30; -- 查询年龄22岁,18岁,25岁的信息 -- or(或者) select * from 表名 where age = 22 or age = 18 or age = 25; -- in(集合) select * from 表名 where age in (22,18,25); -- 查询英语成绩不为null -- in not null(不为空) select * from 表名 where english is not null; /** like(模糊查询) _(单个字符) %(多个字符) */ -- 查询性王的人 select * from 表名 where name like '王%'; -- 查询第二个字是麻的人 select * from 表名 where name like '_麻%'; -- 查询名字是三个字的人 select * from 表名 where name like '___'; -- distinct(重复的值都只显示一个) -- 查询年龄集合,重复的只显示一个 select distinct age where 表名; 排序查询 # sql 复制 1 2 3 4 -- 根据年龄升序(默认) select * from 表名 order by age; -- 根据年龄降序 select * from 表名 order by age desc; 聚合函数 # sql 复制 1 2 3 4 5 6 7 8 9 10 -- 计算数据行数 select max(*) from 表名; -- 计算年龄最大是多少 select max(age) from 表名; -- 计算年龄最小是多少 select min(age) from 表名; -- 计算年龄总和是多少 select sum(age) from 表名; -- 计算年龄平均数是多少 select avg(age) from 表名; 分组查询 group by # sql 复制 1 2 3 4 5 6 -- 按照性别分组,分别查询男、女的平均分、人数 select sex,avg(math),count(id) from 表名 group by sex; -- 将分数高于60的人按照性别分组,分别查询男、女的平均分、人数 select sex,avg(math),count(id) from 表名 where math > 60 group by sex; -- 按照性别分组,分别查询男、女的平均分、人数。要求:分数大于60,分组后人数大于2 select sex,avg(math),count(id) from 表名 where math > 60 group by sex having count(id) > 2; 分页查询 # sql 复制 1 2 3 4 5 6 7 8 9 10 11 12 /** 该分页只支持mysql limit 开始索引,查询条数 开始索引计算公式:(页数 - 1) * 每页条数 */ -- 每页显示10条 -- 第一页 select * from 表名 limit 0,10; -- 第二页 select * from 表名 limit 10,10; -- 第三页 select * from 表名 limit 20,10; 内连接查询 # sql 复制 1 2 3 4 5 6 7 8 9 10 11 -- 隐式内连接 -- 语法 select 字段列表 from 表1,表2...表n where 条件; -- 例子 select t1.c1,t1.c2,t2.c1 from t1,t2 where t1.t2Id = t2.id; -- 显式内连接 -- 语法 select 字段列表 from 表1 join 表2 on 条件; -- 例子 select * from t1 join t2 on t1.t2Id = t2.id; 外连接查询 # sql 复制 1 2 3 4 5 6 7 8 9 10 11 -- 左外连接 -- 语法 select 字段列表 from 表1 left join 表2 on 条件; -- 例子 select t1.*,t2.c1 from t1 left join t2 ON t1.t2Id = t2.id; -- 右外连接 -- 语法 select 字段列表 from 表1 right join 表2 on 条件; -- 例子 select t1.*,t2.c1 from t1 right join t2 ON t1.t2Id = t2.id; 子查询 # 子查询结果是单行单列 # sql 复制 1 2 3 4 5 6 -- 查询最高的成绩(这里假设最高为98) select max(math) from 表名; -- 查询成绩最高的人的信息 select * from 表名 where math = 98; -- 使用子查询 select * from 表名 where math = (select max(math) from 表名); 子查询结果是多行单列 # sql 复制 1 2 3 4 5 6 -- 查询名称为n1或者n2的id(这里假设id为1,2) select id from 表名 where name = 'n1' or name = 'n2'; -- 查询成绩最高的人的信息 select * from 表名 where id = 1 or id = 2; -- 使用子查询 select * from 表名 where id in (select id from 表名 where name = 'n1' or name = 'n2'); 子查询结果是多行多列 # sql 复制 1 2 -- 这里t1和t2是同一张表,查询结果每列有两个相同的数据 select * from 表名 t1,(select * from 表名) t2 where t1.id = t2.id;

2024-05-05 · 5 分钟 · 2098 字 · Linlccc

管理 SSH

生成新的 SSH 密钥 # 在终端中输入以下指令以提供的电子邮件为标签创建SSH密钥 Bash 复制 1 ssh-keygen -t rsa -b 4096 -C "[email@example.com]" 根据提示输入密钥保存文件,可空保存到默认文件C:\Users\[User]\.ssh\id_rsa 根据提示输入两次密码(建议不设置密码,否者每次 push 都需要输入密码) 将 SSH 密钥添加到 ssh-agent # 以管理员权限打开 PowerShell 启动 ssh agent: Bash 复制 1 2 Get-Service -Name ssh-agent | Set-Service -StartupType Manual Start-Service ssh-agent 将 SSH 私钥添加到 ssh-agent (无需管理员权限) Bash 复制 1 ssh-add C:\Users\[User]\.ssh\id_rsa 移除 SSH 密钥 # 删除C:\Users\[User]\.ssh\文件夹中的两个密钥文件 从ssh agent中移除ssh密钥 Bash 复制 1 2 3 4 # 查看已加载的密钥列表 ssh-add -l # 移除密钥 ssh-add -d C:\Users\[User]\.ssh\id_rsa

2024-04-22 · 1 分钟 · 272 字 · Linlccc

C++ 学习笔记

基础 # 整数类型 # 这些类型里面除了只有 signed 和 int 的都可以省略 signed / int 例如 short, short int, signed short, signed short int 表示一个类型 类型 占用字节数 取值范围 signed char 1 -到 127 unsigned char 1 到 255 short, short int, signed short, signed short int 2 -到 32767 unsigned short, unsigned short int 2 到 65535 int, signed, signed int 4 -到 2147483647 unsigned, unsigned int 4 到 4294967295 long, long int, signed long, signed long int 4 与 int 或 long long 相同 unsigned long, unsigned long int 4 与 unsigned 或 unsigned long long 相同 long long, long long int, signed long long, signed long long int 8 -到 9223372036854775807 unsigned long long, unsigned long long int 8 到 18446744073709551615 浮点类型 # 类型 占用字节数 取值范围 float 4 1.175494351e-到 3.402823466e+38 double 8 2.2250738585072014e-到 1.7976931348623157e+308 long double 12 3.36210314311209350626267781732175260e-到 1.18973149535723176508575932662800702e+4932 无效浮点数信息 # 在 C++中,浮点数类型的值可以是无效的,具体取决于浮点数类型的规范。以下是一些常见的无效浮点数值: ...

2023-02-28 · 6 分钟 · 2753 字 · Linlccc

踩坑记--Safari之正向后行断言

正则表达式 # 1. Safari 处理正则表达式中的正向后行断言时(?<=…),异常 # js 复制 1 2 3 4 5 6 // 以下代码在 Chrome 中正常,但在 Safari 中会报错 "https://linlccc.com?theme=light".replace(/(?<=[?|&]theme=)\w+/, "dark"); // 解决方案,使用捕捉组+替换字符串的方式 "https://linlccc.com?theme=light".replace(/([?|&]theme=)\w+/, "$1dark"); // 以上两个执行结果都是 "https://linlccc.com?theme=dark"

2023-02-24 · 1 分钟 · 107 字 · Linlccc

hugo 模板基本语法

概念 # 每一个模板都有一个名为 Page 数据对象 Page 信息参考: Page 信息参考 基础语法 # 访问变量 # go 复制 1 2 {{ .Titel }} // 访问已存在的变量 {{ $address }} // 访问自定义变量 声明变量与赋值 # go 复制 1 2 3 4 {{ $address := "http://www.baidu.com" }} // 声明自定义变量并赋值 {{ $msg := `Line one. Line two.` }} // 支持多行字符串 {{ $msg = "" }} // 将msg的值修改为空字符串 条件语句 # 条件语句 if/with 都以 {{ end }} 结束 在 hugo 模板中,条件语句的条件可以是任何表达式,而不仅仅是布尔类型的表达式,以下情况会被认为是 false: ...

2023-02-22 · 4 分钟 · 1899 字 · Linlccc