- 博客(34)
- 收藏
- 关注
原创 进程的并发执行 分为两类 互斥关系和同步关系
进程的并发执行是操作系统管理多任务的一种重要机制,通过快速切换和时间片轮转,使多个进程在同一时间段内交替执行,提高了系统资源的利用率和响应能力。在多核处理器系统中,还可以实现真正的并行执行,从而进一步提高性能。互斥关系:多个进程需要互斥访问共享资源,以避免冲突。主要通过锁机制来实现。同步关系:多个进程需要按某种顺序协调执行,以确保数据一致性或达到某种合作。主要通过条件变量、信号量等机制来实现。理解这两种关系及其实现机制,对于设计和开发并发系统、保证数据一致性和系统稳定性至关重要。
2024-06-07 11:26:19 917 1
原创 卷积神经网路结构学习的是什么? 以及具体结构特征
卷积神经网络(Convolutional Neural Networks, CNNs)是一种专门用于处理具有网格状拓扑结构数据(如图像)的深度学习模型。
2024-05-20 01:42:55 284 1
原创 在基于FusionCount模型的第一层卷积后加入CBAM注意力机制后,可能会导致同一张图片所预测的人数不一致。出现这种现象的原因
加入CBAM注意力机制后,如果对同一张图片的预测结果不一致,可能是由于模型初始化和训练过程中的随机性、注意力机制的敏感性、训练数据的多样性和模型的复杂性所致。通过固定随机种子、充分训练、交叉验证、正则化和超参数优化等方法,可以减少这些因素的影响,提高模型预测结果的一致性和可靠性。如果训练数据中包含了大量不同密度和分布的人群场景,模型可能会在某些情况下过拟合或欠拟合,从而导致对同一张图片的预测不一致。:使用交叉验证来评估模型的性能,通过在不同数据子集上训练和评估模型,减少单一训练集对结果的影响。
2024-05-19 11:35:06 355
原创 同一个测试集合,不同模型时出现MAE1 < MAE2 但 RMSE1 > RMSE2 这种情况(加入注意力机制情况下)
若对大误差的惩罚更为看重,避免极端错误更为关键,则RMSE更低的模型2可能是更好的选择。这意味着,如果模型在大多数样本上表现稳定,即使有一些误差较大的情况,只要这些大误差不是极端异常值,MAE可能依然较低。**均方根误差(Root Mean Squared Error, RMSE)**是对预测误差平方的均值再开方,因此它对较大的误差给予了更大的惩罚。: 相比之下,模型2虽然在总体上每个预测的平均绝对误差略高,但其误差分布可能更加均衡,没有特别突出的大误差,这使得RMSE2相对较低,即使MAE2稍大。
2024-05-08 21:02:49 329
原创 anaconda与pycharm应用pytorch步骤
我上面查找的我的CUDA版本为11.4,那么我可以安装CUDA11.4以下的版本的pytorch包,这里我就选择11.6。命令行下 看 cuda是否安装成功。anaconda 配置 新的虚拟环境。安装pytorch到anaconda。pytorch 与pycharm连接。查看下载渠道和环境安装路径等信息。检验CUDNN安装是否成功。CUDA CUDNN完成。CUDA 10.1版本。
2024-01-10 01:42:36 580 1
原创 椭圆(turtle)
from turtle import *penup()goto(0, -100)pendown()y = 100list1 = ['red', 'blue']for k in list1: color(k) begin_fill() circle(y) penup() goto(0, -85) pendown() y -= 15 end_fill()hideturtle()penup()goto(0, 70)pend.
2022-04-25 23:40:28 847
原创 最长上升子序列
#include <cstdio>#include <algorithm>using namespace std; int n,a[20010];int c[20010];int len=0; int find(int x){ int l=1,r=len,mid; while(l<=r) { mid=(l+r)>>1; if(x>c[mid])l=mid+1; //记
2022-04-14 00:06:00 54
原创 动态规划(备忘录)
#include<iostream>using namespace std;int max(int a,int b){ return a>b?a:b;}int main(){ int n; cin>>n; int a[n]; for(int i=0;i<n;i++) cin>>a[i]; int m[n]; m[0]=a[0]; for(int i=1;i<n;i++){ if(m[i-1]>0) .
2022-04-14 00:00:11 1864
原创 分治策略----寻找数组中第k小的元素
#include <stdio.h>/*先给出一个划分函数(快速排序的划分)*/int partition(int* ar, int left, int right){ int i = left; int j = right; int tmp = ar[i]; while (i < j) { while (i<j && ar[j] > tmp) { j--; } if (i < j) ar[i] = ar[j];
2022-04-09 10:18:16 371
原创 快速归并排序
#include<iostream>#include<vector>using namespace std;void mergesort(vector<int>& a, int l,int r){ if(l==r) return ; int mid=(l+r)/2; mergesort(a,l,mid); mergesort(a,mid+1,r); int t[r-l+1]; int i=0; int ll=l; int rr=mid
2022-03-21 11:36:56 78
原创 二分查找(三种情况)+回文子串(递归)
#include <bits/stdc++.h>using namespace std;typedef long long int ll;int n; int a[1100];int main(){ int n; cin>>n; for(int i=0;i<n;i++) cin>>a[i]; int x; cin>>x; int l=0; int r=n-1;
2022-03-20 15:24:33 256
原创 循环赛(分治法)
#include <bits/stdc++.h>using namespace std;typedef long long int ll;int n; int a[1100][1100];int main(){ scanf("%d",&n); n=pow(2,n); int h=1; a[0][0]=1; do{ //以i j为基 h 为增量 for(int i=0;i<h;i++){
2022-03-20 13:17:01 373
原创 数组(二分查找快速排序)
#include<iostream>#include<vector>using namespace std;void ef(vector<int> &a,int l,int r,int k){ while(l<=r) { int mid=(l+r)/2; if(a[mid]==k){ cout<<mid+1; break;} else if(a[mid]>k)
2022-03-07 11:15:16 86
原创 归并排序(分治法)
#include<bits/stdc++.h>using namespace std; //归并过程void merge(int arr[], int l, int mid, int r){ int help[r-l+1];//辅助数组 int i = 0; int lIndex = l; int rIndex = mid+1; while(lIndex <= mid && rIndex <= r){ help[i++] = arr[lIndex
2022-03-05 21:03:56 123
原创 快速排序(不定长数组)
#include<iostream>#include<vector>using namespace std;//快速排序(从小到大)void QuickSort(vector<int>& arr,int left, int right){ if(left >= right) return; int i, j, base, temp; i = left, j = right; base = arr[le
2022-03-05 17:49:41 330
原创 二分查找(II)
#include<iostream>#include<stdio.h>using namespace std;int main(){ int n,m; scanf("%d %d",&n,&m); //cin >> n >> m ; int a[n+10],b[200010]={0}; for(int i=1;i<=n;i++) { scanf("%d",&a[i]); //cin >..
2022-03-04 21:25:30 132
原创 二分查找(I)
现在有一个长度为n的有序的序列,m次询问,每次会告诉你一个数字x,让你完成以下两种操作:1.找到第一个大于等于x的值的下标,如果有多个等于的话找到第一个等于的下标2.找到第一个大于x的值的下标如果没有就输出NO,保证序列有序。#include<stdio.h>int a[100001];int main(){ int n,m; scanf("%d%d",&n,&m); for(int i=0;i<n;i++) scanf(".
2022-02-28 12:14:47 174
原创 删数求最小值
给定一个n位正整数a, 去掉其中k个数字后按原左右次序将组成一个新的正整数。对给定的a, k寻找一种方案,使得剩下的数字组成的新数最小。贪心算法:在整数的位数固定的前提下,让高位的数字尽量小,整数的值就小。这就是所要选取的贪心策略。当k=1时,对于n位数构成的数,删一位,删除满足如下条件的a[i]:它是第一个a[i]>a[i+1]的数,如果不存在则删除a[n]。当k>1(当然小于n),按上述操作一个一个删除。每删除一个数字后,后面的数字向前移位。删除一个达到最小后,再从头即从串首开始.
2022-02-25 21:36:36 685
原创 划拳 结构体
划拳划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和,谁就输了,输家罚一杯酒。两人同赢或两人同输则继续下一轮,直到唯一的赢家出现。> 下面给出甲、乙两人的酒量(最多能喝多少杯不倒)和划拳记录,请你判断两个人谁先倒。#include<bits/stdc++.h>using namespace std;typedef struct node{ int a,b
2022-02-16 16:31:48 65
原创 HENAU冬令营-递推专题(第七组题解)
A - 上台阶2小瓜一次只能向上走1级或者3级或者5级台阶问: 有多少种方法走上n阶台阶#include<iostream>using namespace std;long step[1000003] = {0};int main(){ int N; cin>>N; if(N<=0){ return 0; } step[0] = 1; step[1] = 1; step[2] = 2;
2022-02-10 00:20:07 158
原创 linux
1.mv 剪切粘贴 mv a b 将a移动到b 也可以作为重命名用2.cp a b -r 把文件夹a复制到文件夹b中 注意这里的a是文件夹3. -r 是递归缩写 如果对文件夹进行操作 是要加-r的4. 删除 rm a -r 删除文件夹 rm a 删除文件 *rm .txt 删除当前文件夹所有以.txt格式的文件如果加 *不加后缀的话是把当前文件夹所有文件全部删掉...
2022-01-18 13:51:37 193
原创 nth_element差分
int b[101];sort(b+1,b+100 ); //排序cout<<b[100/2+5];nth_element(b+1, b+55,b+100)//b排序后找出b+55的赋给b[55]; 更快;cout<<b[55];
2022-01-15 00:07:26 175
原创 删除值为x的元素
//删除值为x的元素void deletelist(vector<int>&a,int x){ int k=0,i; for(int i=0;i<a.size();i++){ if(a[i]!=x) a[k++]=a[i]; } /* 记录==x的个数 向前移 int k=0,i=0; while(i<a.size()){ if(a[i]=
2021-11-03 13:32:14 224
原创 2021-07-29快速幂
快速幂:n&1:(1即01)二进制:均为1时为1.n为奇数时:1n为偶数时:0幂x=pow(a,n)n为偶数时:x=(aa)^(n/2)n为奇数时:x=a(a*a)^(n/2)最后n=1返回ans.#include<iostream>using namespace std;int power(int a, int n)//a^n{ int ans = 1; while (n > 0) { if (n & 1)
2021-07-30 14:03:12 62
原创 2021-07-11并查集
并查集:并就是合并 查就是查找 集就是集合总而言之:合并集合,查找集合为了方便将两个数字的集合合并为了方便判断两个数字是否属于同一集合#include<iostream>using namespace std;int a[5005];int find(int i) { if (a[i] == 0) return i;//初始化(a[0]=0,a[1]=1) return a[i] = find(a[i]);//查找父节点(不断找父节点)}void bcj(
2021-07-12 00:55:53 65
原创 2021-07-09一维二维前缀和差分
#include<iostream>#include<algorithm>using namespace std;int b[100] = { 0 }, a[100] = { 0 };int sum[100];//初始值为0void add(int l, int r, int v) { b[l] += v; b[r + 1] += v;}//0,0,5,0,0,-5 .// 3,0,5,0,0,-8.//差分改 b[l]+=v, b[r+1]-=v //即
2021-07-09 19:45:23 62
原创 2021-06-19深浅拷贝
import copy# copya=[1,2,3]x=copy.copy(a)x.append('W')print(x,a,sep='\n')'''[1, 2, 3, 'W'][1, 2, 3]'''#带有子对象的拷贝 copy型b=[1,2,3,['4','5'],6]c=copy.copy(b)print(c) #[1, 2, 3, ['4', '5'], 6]c.append(7)print(b,c)''' [1, 2, 3, ['4', '5'], 6]
2021-06-19 21:31:01 69
原创 两个字典中的值求和后合并
a={"河南":3,"浙江":2,"吉林":1}b={"河南":8,"浙江":3,"山东":5,"江苏":6,"安徽":4,"福建":2}#法1:for key,value in a.items(): b[key]=b.get(key,0)+valueprint(b)""" #法二 if key not in b:#主要为检查键 b[key]=value else : b[key]+=value""""""#法3:from coll
2021-04-03 09:26:12 266
基于GoogleNet的汽车种类识别
2024-06-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人