
编程:编程语言&框架
C/C++, Java, Python
雪的期许
这个作者很懒,什么都没留下…
展开
-
Go实现简单的协程池(通过channel实现)
go编程时,goroutine是非常有用的特性。然而,实践中最好不要无限制的使用goroutine,例如一次性开一万个goroutine去读写文件是很危险的。为了控制goroutine的并行量,有很多框架或库实现了协程池,例如ants(很推荐)。当小项目不想引入第三方库时,可以借助channel自己实现一个简易的协程池。首先,创建一个package,不妨名为。原创 2024-04-12 12:09:54 · 720 阅读 · 0 评论 -
Golang协程池ants使用笔记
最近工程中遇到goroutine滥用导致的bug,采用了ants协程池来解决。原创 2024-01-26 17:45:09 · 1625 阅读 · 0 评论 -
表达式计算C++
问题描述给定四则运算(含括号)表达式,计算运算结果。拓展知识:逆波兰式。样例输入3+4*(5+6)样例输出47问题分析四则运算基本法则:先算乘除,后算加减,有括号的先算括号。于是给运算符定义优先级:符号优先级+ -1* /2由于括号实际上并不参与运算,只是改变运算的先后次序,所以括号不用考虑优先级,遇到括号时特判即可。由于运算过程中,存在先算后面的情况,所以用栈来保存前面的运算符(如±),等后面运算(如*/)完成,再弹出栈中的运算符进行计算。这里的原创 2022-04-29 17:50:30 · 2426 阅读 · 1 评论 -
二叉树遍历练习 - 递归/非递归
参考:https://blog.youkuaiyun.com/winter2121/article/details/99560253样例:样例输入:ABD##E##C#FG##H###include <stdio.h>#include <stdlib.h>struct Node{ char data; struct Node *lchild, *rchild;};Node *createTree(){ char ch = getchar();原创 2022-04-24 12:27:59 · 1695 阅读 · 0 评论 -
数据结构排序练习(数组排序/单链表排序)
太久不写排序了,限时写已经写不出来了。愧为acmer。面试官出了个单链表的排序,让我选一种排序,我选了归并排序。大概写了20分钟,一运行就崩溃,由于面试时间有限,面试官看了看我的代码提了几个易错点(如指针判空,链表分治)。惭愧。今天把排序算法搬出来分别用数组和单链表写了一遍,温故而知新。数组版排序#include <bits/stdc++.h>using namespace std;// 冒泡排序void bubble_sort(int a[], int n){ fo原创 2022-04-23 11:51:13 · 1190 阅读 · 0 评论 -
git笔记
文章目录✨基本原理🍅常用命令分支管理(初始默认master分支)git add 从工作区向暂存区添加更改git checkout从暂存区提交更改到版本库温馨提示🍉常用操作强制覆盖本地代码✨基本原理工作区:自己电脑上看到的项目,也就是自己写的代码。暂存区:介于工作区和版本库之间的一个缓冲区(保存在.git/index),用户改过的代码必须先执行git add添加到暂存区,然后才能执行git commit将代码更改同步到版本库分支。另外,git commit -a可以一次性将代码的更改和删除添加到原创 2022-04-17 17:43:07 · 884 阅读 · 0 评论 -
go语言学习笔记
Go 亦称为 Golang(语言叫做 Go,Golang 只是官方网站的网址),是由谷歌开发的一个开源的编译型的静态语言。Golang 的主要关注点是使得高可用性和可扩展性的 Web 应用的开发变得简便容易。(注:Go 的定位是系统编程语言,只是对 Web 开发支持较好)到目前为止,我们一直在一个go代码文件中进行学习,文件里包含一个 main 函数和一些其它的函数。在实际应用中,整个项目不可能都塞到一个文件里,否则代码重用和维护都会很困难。原创 2022-03-12 18:30:26 · 661 阅读 · 3 评论 -
python爬虫爬取谷歌搜索的结果,正则表达式查找目标内容
方式一,使用requests库import urllibimport requestsfrom bs4 import BeautifulSoup # 第三方包,处理html对象import redef search_google(query): # 爬取网页html源码 url = 'https://google.com/search?q=' + urllib.parse.quote(query) headers = {'User-Agent': 'Mozilla/5原创 2021-12-19 21:39:40 · 3544 阅读 · 1 评论 -
opencv 读取图片 图片数据处理 笔记
1. python中各类图片读取工具的比较参考Python各类图像库的图片读写方式总结可知,opencv的性能表现最好。opencv yyds2. opencv常用函数2.1 读取图片cv2.imread(filename, flags)参数解释filename:图片的完整路径flags:标志位,{cv2.IMREAD_COLOR,cv2.IMREAD_GRAYSCALE,cv2.IMREAD_UNCHANGED}cv2.IMREAD_COLOR:默认参数,读入一副彩色图片,忽略alph原创 2021-12-17 15:55:25 · 3501 阅读 · 0 评论 -
python matplotlib画出Dirivhlet分布的单纯形图
参考文献File:Dirichlet.pdf, From Wikipedia, the free encyclopedia画出Dirichlet分布的单纯形图代码import numpy as npimport matplotlibimport matplotlib.pyplot as pltimport matplotlib.tri as trifrom mpl_toolkits.axes_grid1.inset_locator import inset_axes# Add fon原创 2021-12-02 15:34:10 · 1975 阅读 · 0 评论 -
python使用import引入其他目录文件或自定义模块
问题描述在python工程中,常常需要使用import引入自己编写的其他模块,但其它模块有时不在同一个文件夹下。此时直接import会导致找不到包而报错ModuleNotFoundError: No module named '****'。下面提供2种解决方案。解决方案以下面的项目结构为例进行说明。# 方案1:使用相对路径(局限)在import时直接使用相对路径,.代表当前文件所在路径,..代表当前文件的父目录,...代表爷爷目录,以此类推,每多一个点,就向上翻一层目录。例1,在f1.py中写原创 2021-08-16 11:29:40 · 54872 阅读 · 5 评论 -
PyTorch优化器正则化问题:偏置(bias)不需要正则化(weight decay) / 如何分离网络参数中的偏置(bias)?
文章目录问题描述解决方案问题描述截至目前,PyTorch中有一个潜在的不合理之处,即pytorch优化器中的正则化会将所有可训练参数都进行正则化,而理论上,偏置(bias)是没有必要进行正则化的(反而会限制模型的能力)。以Adam优化器为例,我们在模型的训练开始之前,一般会这样定义优化器:optimizer = torch.optim.Adam(net.parameters(), lr=0.01, weight_decay=0.0001)其中weight_decay为正则化项的系数。如上定义,模型原创 2021-04-28 16:23:43 · 5298 阅读 · 2 评论 -
JetBrains Clion CmakeList.txt编写:运行多个cpp文件、解决定义大数组无法编译
编辑项目根目录下的CMakeLists.txt,加入下面###···###之间的内容。右击左侧项目根目录文件夹,再左击Reload Cmake Project。每个cpp文件的main函数首行会多出一个绿色的运行按钮,直接点击即可执行该main函数。cmake_minimum_required(VERSION 3.19)project(clionTest)set(CMAKE_CXX_STANDARD 14)#########################################.原创 2021-04-13 11:48:36 · 1160 阅读 · 0 评论 -
python多线程是假的!速度慢!效率低下!不升反降!
情景描述最近在做实验时,想到用多线程来加快对数据集的加载速度。在尝试后总感觉时间依旧很慢,于是查阅资料得知:python多线程是个天坑!Python中的多线程是假的多线程! 因为Cpython解释器有一个东西叫全局解释器锁(GIL)。在解释器解释执行 Python 代码时,先要得到这把锁,意味着,任何时候只可能有一个线程在执行代码,其它线程要想获得 CPU 执行代码指令,就必须先获得这把锁,如果锁被其它线程占用了,那么该线程就只能等待,直到占有该锁的线程释放锁才有执行代码指令的可能。所以python多线原创 2021-03-28 14:26:13 · 10770 阅读 · 12 评论 -
pytorch处理不定长序列;实现不定长输入的RNN / LSTM / GRU
情景描述As we all know,RNN循环神经网络(及其改进模型LSTM、GRU)可以处理序列的顺序信息,如人类自然语言。但是在实际场景中,我们常常向模型输入一个批次(batch)的数据,这个批次中的每个序列往往不是等长的。pytorch提供的模型(nn.RNN,nn.LSTM,nn.GRU)是支持可变长序列的处理的,但条件是传入的数据必须按序列长度排序。本文针对以下两种场景提出解决方法。每个样本只有一个序列:(seq,label),其中seq是一个长度不定的序列。则使用pytorch训练时,原创 2021-03-26 14:02:26 · 17197 阅读 · 6 评论 -
python pandas 笔记 (DataFrame,Series)
文章目录pandas笔记DataFrame1.创建2.取值3.遍历4.筛选5.删除6. 常用方法Series1.创建2. 取值3.常用操作pandas笔记安装pip install pandas使用import pandas as pdDataFrame1.创建pd.DataFrame(data=None, index=None, columns=None, dtype=None, copy=False)data:多维数组,字典或DataFrame。必需参数。index:行原创 2021-02-07 21:29:30 · 1465 阅读 · 1 评论 -
有道云笔记markdown原文转csdn博客markdown
import remd_path = 'md.txt'out_path = 'out.txt'with open(md_path, 'r', encoding='utf-8') as f: text = f.read()text = text.replace('[TOC]', '@[TOC](文章目录)')text = text.replace('[toc]', '@[TOC](文章目录)')p_inline = re.compile(r'`(?P<formula>\原创 2021-01-11 16:13:20 · 332 阅读 · 0 评论 -
python进度条 tqdm使用教程
def process_bar(percent, start_str='', end_str='', auto_rm=True): bar = '=' * int(percent * 50) bar = '\r{}|{}| {:.1%} | {}'.format(start_str, bar.ljust(50), percent, end_str) print(bar, end='', flush=True) if percent == 1: print(en原创 2020-12-18 11:47:11 · 45762 阅读 · 0 评论 -
win10系统python编程使用MPI实现分布式计算(mpi4py)
文章目录参考什么是MPI?安装MPI所需的环境1. 安装VSCompiler2. 安装mpi4py3. 安装MS-MPI测试参考https://zhuanlan.zhihu.com/p/157804393?from_voters_page=truehttps://www.cnblogs.com/starryxsky/p/10344344.html什么是MPI?MPI (Message Passing Interface)是一套标准,不是一个软件。事实上它是一套并行运算中信息传递和处理的标准,在这个原创 2020-10-30 00:00:42 · 2992 阅读 · 0 评论 -
pytorch1.60 torch.nn在pycharm中无法自动智能提示
问题描述安装了pytorch最新版本1.6之后,在pycharm中编辑python代码时,输入torch.nn.看不到提示了,比如torch.nn.MSELoss()。而在1.4及以前的版本中,直接输入torch.nn.就会自动提示出很多torch.nn.modules中的API。该问题的讨论在前几年有过不少(https://www.zhihu.com/question/279645242/answer/520263986),但都是基于老版本,经过尝试,对于1.6版本是无效的。原因分析pychar原创 2020-09-25 17:03:18 · 3069 阅读 · 16 评论 -
pytorch常用函数 API学习笔记教程 快速查表
目录前言创建张量(tensor)比较大小 & bool张量快速判断索引与切片维度变换拼接与拆分基本运算数据统计前言本文内容基于pytorch 1.6版本进行学习,记录下pytorch在实际场景中常用的API以备编程时查阅。本文大量参考借鉴了B站视频《PyTorch学这个就够了》,侵删。pytorch开发环境配置请参考pytorch安装 CUDA安装 创建张量(tensor)a.shape a.size() 返回张量a的形状,返回值为张量类型torch.from_numpy(numpy原创 2020-09-20 17:54:01 · 975 阅读 · 0 评论 -
tensorflow笔记API 快速查函数
基于tensorflow1.121.基本运作&张量定义import tensorflow as tfx1 = tf.Variable([1, 2], dtype=tf.int64) # 变量c1 = tf.constant([1, 2, 3], dtype=tf.float64) # 常量c2 = tf.zeros((3, 2)) # 全0张量c3 = tf.ones((4, 3)) # 全1张量c4 = tf.fill((2, 4), 9.9) # 全9.9张量原创 2020-07-17 12:40:25 · 389 阅读 · 0 评论 -
Python学习整理之 列表list 元组tuple 字典dictionary
一、list列表(菜鸟教程:点击打开链接)1、赋值list=['c','b','mn','a']2、输入:(默认空格分隔)list=input().split(' ')3、排序:(默认从小到大)list.sort()4、访问:print(list[0])直接下标访问,从0开始。用负数表示从右边向左数。二、tuple元组(我不习惯)(菜鸟教程:点击打开链接)原创 2017-07-23 22:36:58 · 451 阅读 · 0 评论 -
Python学习整理之输入输出input(),print()
廖雪峰Python教程一、输入1、输入字符串。name=input()这样可以接收一个字符串,包括空格,都可以输入。只有回车不接受,作为结束符。提示信息的添加:name=input('please input a string')Python所有的输入都是以字符串形式接收,再转化成数字或其他数据用int()函数可以把字符串转化成数字,比如int(name)。然后name就变原创 2017-07-11 21:28:24 · 7690 阅读 · 1 评论