- 博客(389)
- 资源 (1)
- 收藏
- 关注
原创 GAN基础知识及代码
输入是长度100的噪声z(正态分布随机数)输出为(1,28,28)的图片,和MNIST数据集保持一致28super(Generator, self).__init__() # 继承父类nn.Tanh() # 最后必须用tanh,把数据分布到(-1,1)之间)def forward(self, x): # x表示长度为100的噪声输入img = img.view(-1,28,28,1) # 方便等会绘图输入为(1,28,28)的mnist图片。
2022-09-25 15:15:19 4952 7
转载 Docker理论知识
Docker 是一个开源的应用容器引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在本地编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。简单的理解,Docker类似于集装箱,各式各样的货物,经过集装箱的标准化进行托管,而集装箱和集装箱之间没有影响。
2022-09-17 09:51:51 283
原创 kaggle比赛:CIFAR-10
最近发现kaggle每周给了30小时的GPU额度,直接使用在线jupyter notebook,非常方便。以后就直接在kaggle上练习了。比赛地址:CIFAR-10 - Object Recognition in Images | Kaggle因为是kaggle官方比赛的数据,所以在Competition Data里直接能搜出来,添加后就到input里了。小tip:/kaggle/input 路径为只读路径如果想写入数据,只能放到/kaggle/working 路径下 然后发现这里给的数据是一个zip压缩
2022-07-07 13:27:14 1542 1
翻译 多层感知机的简洁实现【动手学深度学习】
整理自:《动手学深度学习》在softmax的基础上加入了一个隐藏层,使得函数更加复杂,能够拟合一些非线性的数据。隐藏层后紧跟着一层激活函数,是为了防止多层模型退化为线性模型。此章的数据集获取、训练函数继承自上一章:softmax回归的简洁实现【动手学深度学习】_九羽-的博客-CSDN博客1. 获取数据集import torchfrom torch import nnfrom d2l import torch as d2lbatch_size = 256train_iter.
2022-05-29 09:38:38 130
翻译 softmax回归的简洁实现【动手学深度学习】
整理自:《动手学深度学习》import numpy as npimport torch,torchvisionfrom torch.utils import datafrom torchvision import transforms1. 获取数据集使用torchvision库自带的经典数据集Fashion-MNST。下载后将其加载到内存中。通过ToTensor实例将图像数据从PIL类型变换成32位浮点数格式,并除以255使得所有像素的数值均在0到1之间。def load_.
2022-05-27 10:11:36 334
翻译 线性回归的简洁实现【动手学深度学习】
整理自:《动手学深度学习》线性模型 y = Xw + b, x是二维的1. 生成数据集import numpy as npimport torchfrom torch.utils import datafrom d2l import torch as d2ltrue_w = torch.tensor([2,-3.4])true_b = 4.2features,labels = d2l.synthetic_data(true_w,true_b,1000)2. 读取数据集.
2022-05-23 20:30:47 80
原创 Jupyter notebook如何切换conda环境
最近在conda中新建了一个python环境,安装了Pytorch;结果Jupyter notebook装在了原本base的环境里,使用没法在Jupyter notebook里调用Pytorch。当然这就引申出来,如何在Jupyter中切换conda中的python环境。效果图:1. 添加环境首先在新环境里安装ipykernel库:conda install ipykernel安装成功后,添加环境python -m ipykernel install --user -.
2022-05-15 19:50:59 1524
原创 安装cuda和Pytorch
1. 首先安装cuda和cudnn参考:CUDA安装教程(超详细)_Billie使劲学的博客-CSDN博客_如何安装cuda先查看本机的cuda支持版本【非常重要,版本不对将无法使用】win+s,搜索NVIDIA Control Panel,打开NVIDIA控制面板。选择左下角的系统信息->组件,查看cuda版本官网:CUDA Toolkit Archive | NVIDIA Developer然后在该网站选者相应的cudatoolkit版本下载有一个地方注意,选.
2022-05-15 16:35:16 10617
原创 右键快速打开Jupyter notebook
如果想修改以上的设置,或者把jupyter卸载了,想取消右键快捷方式1. 打开注册表。win+r, 输入regedit.exe2.ctrl + f 查找 jupyter_notebook_here3.右键删除即可 。如果想修改也点开修改。
2022-05-15 09:40:29 4478
原创 miniconda3介绍、安装、使用教程
简单来说conda有什么用?方便的创建多个python虚拟环境,方便多个python项目同时开发的时候,每个项目都有自己独立的python开发环境。相当于在一个园区,建立很多仓库,每个仓库都相互独立,可以安装不同的python环境,防止python环境不对应导致代码运行出错。对于pip、conda、anaconda和miniconda的区别。 conda是一个包和环境管理工具,它不仅能管理包,还能隔离和管理不同python版本的环境。类似管理nodejs环境的nvm工具。 ana
2022-05-14 18:30:49 78892 7
翻译 PCA主成分分析【机器学习】
参考视频: 吴恩达机器学习 14-3PCA全称Principal Component Analysis,是数据挖掘中常用的一种降维算法,也用于无监督学习中。所谓降维,就是把具有相关性的维度合并,用较少的维度取代原先较多的维度。如果原始向量两两正交,即没有相关性,则PCA也没有作用。比如x是三维的,x=(年龄,学历,出生年份),我们要把它降维到二维,而年龄和出生年份很相似,所以把这两个合并,得到 z =(年龄,学历)。直观的感受,这里要尽可能地保证降维后,数据的特性损失最小问题.
2022-05-06 10:50:43 264
原创 自底向上LR(1),SLR(1),LR(1),LALR(1)分析的比较(编译原理)
自底向上LR(1),SLR(1),LR(1),LALR(1)分析的比较首先来看张图,上图是四种文法的包含关系,即 LR(1)文法范围最大,而 LR(0)文法范围最小。同时也说明了四种文法分析过程的强弱,即 LR(1)文法分析最强,而 LR(0)文法分析最弱。画出文法的LR(0)自动机,如果没有冲突,则该文法是LR(0)文法;如果没有移进--规约冲突,则该文法是SLR(1)文法;画出文法的LR(1)自动机,如果没有同心项且没有状态冲突,则该文法是LALR(1)文法;如果有同心项且合.
2022-03-19 19:40:00 1612
原创 考研复试 - 机试模板
去年开始不让携带纸质资料了,整理一些模板来背一下。因为没有划定考察范围,时间有限只准备熟悉的,网络流,扩展kmp之类比较难的就不准备了。主要参考《算法笔记》、《明月册》的内容。机房里只提供Dev C++, 用了一下很难用,一个是没有代码单词提示(输入prin不会提示printf),一个是不知道万能头让不让用,还要背一下头文件。考前必看 仔细看输入输出要求,写完代码对照一下,尤其是特殊情况。 是否需要开long long 数组是否开小,n<=150的开数组开a[
2022-03-12 16:30:57 3251 1
原创 N - DAG优化(编译原理练习)
Description大家都学过了代码优化,其中有一个DAG优化,这次我们就练习这个操作。N - DAG优化(编译原理练习)Input输入第一行为一个整数n(n < 100),表示该组输入的表达式的个数之后n行为表达式,每个变量为一个字母,表达式仅包括二元运算 + - * /例如:A=B+COutput通过构造DAG图,进行代码优化,只需要保留AB,删除无用变量,删除变量时,尽量保留最早出现的变量。PS:保证AB的值不同SampleInput3..
2021-05-27 12:27:03 701
原创 P - 简单的代码生成程序(编译原理练习)
#include<bits/stdc++.h>using namespace std;struct node { char str; int l=-1,r=-1; vector<char> add;}d[105];int cnt,via[105];char ans[105][8];int _find( int id, char str ){ for ( int i=0; i<d[id].add.size(); i++ ) {.
2021-05-27 11:16:40 355
原创 M - 翻译布尔表达式(编译原理练习)
#include<bits/stdc++.h>using namespace std;int main(){ string a,x; getline(cin,a);a+=" ed"; int id=100,yes=1,no=100; stringstream b(a); vector<string> d; while ( b>>x ) { if ( x=="or"||x=="ed" ) { .
2021-05-06 13:26:27 183
原创 D - 表达式语法分析——递归子程序法(编译原理练习)
D - 表达式语法分析——递归子程序法(编译原理练习)代码:#include<bits/stdc++.h>using namespace std;string s;int cnt,op;void T(),E(),G(),S(),F();void ex(){ printf("error\n"); exit(0);}void E(){ if ( s[op]=='('||s[op]=='i' ) { printf("%d.
2021-04-07 18:09:55 516
原创 A - 小C语言--词法分析程序(编译原理练习)
A - 小C语言--词法分析程序(编译原理练习)代码:#include<bits/stdc++.h>using namespace std;string key[10]={"main","if","else","while","int","for"};void show( string s ){ if ( s=="" ) return ; if ( isdigit(s[0]) ) { cout << "(integer,"&.
2021-03-18 12:56:46 728
原创 B - 识别浮点常量问题(编译原理练习)
B - 识别浮点常量问题(编译原理练习)Description编译器在对程序进行编译之前,首先要进行语法分析。通常,程序被分解成若干个小单元,然后和语言的语法模式进行匹配。在分析表达式的时候,变量的类型在变量声明的时候就决定了;而常量的类型需要从常量的形式来判断。假设你是自动编译器(ACM)开发小组的一员,负责Pascal语言编译器的开发。你的任务是分析程序分解模块送来的文件,判断其中包含的字符串是否合乎语法的Pascal浮点常量。Pascal语言对浮点常量的语法要求是:一个浮点常量除了十进.
2021-03-18 12:54:49 699 1
原创 ( 图论专题 )【 网络最大流 】
( 图论专题 )【 网络最大流 】推荐视频:https://www.bilibili.com/video/av65039892?from=search&seid=1822150581423158194推荐阅读:https://blog.csdn.net/stevensonson/article/details/79177530网络流图是一张只有一个源点和汇点的有向图,而...
2020-12-22 21:07:51 304
转载 ( 数论专题 )【中国剩余定理】
( 数论专题 )【中国剩余定理】中国剩余定理的具体描述是这样的:给出你n个ai和mi,最后让求出x的最小值是多少。n个m两两互质:///n个mi互质const LL maxn = 20;LL a[maxn], m[maxn], n;LL CRT(LL a[], LL m[], LL n){ LL M = 1; for (int i = 0; i < n; i++) M *= m[i]; LL ret = 0; for (int i = .
2020-12-09 21:16:27 199
原创 ( 数论专题 )【斯特灵公式】
( 数论专题 )【斯特灵公式】斯特林公式是一条用来取n的阶乘的近似值的数学公式一般来说,阶乘的计算复杂度为线性。当要为某些极大大的n求阶乘时,常见的方法复杂度不可接受。斯特林公式能够将求解阶乘的复杂度降低到对数级。而且,即使在n很小的时候,斯特林公式的取值已经十分准确。...
2020-11-30 21:23:36 587
原创 F - A word game( 深刻理解SG函数 )
F - A word game( 深刻理解SG函数 )对于SG值的定义:SG=0先手必输,否则先手必赢。 对于有多个并列情况取SG值的异或。之前一直有个误区,认为两个必赢的并列情况异或一下就是必输了,其实不是,因为SG不是一个bool类型的值,SG的定义是取所有子情况的SG值没出现的最小值即mex(). 所以两个先手必赢的并列情况取异或不一定必输,比如SG1=1, SG2=2, SG1^SG2=3, 还是先手必赢。对于这个题,有26堆石子,石子的个数都给出,两人轮流操作,1.选择一堆石子。2.拿.
2020-11-30 20:43:14 461
原创 python通讯录(GUI界面+sqlite3)
python通讯录(GUI界面+sqlite3)参考:python通讯录完整(包括GUI界面)BUG已经修复做的比较粗糙,当个小作业还可以。update页面懒得做了import tkinterimport tkinter.messageboximport _sqlite3def Insert(name,phone): c.execute('insert into people values(?,?)',(name,phone))def Del(name): c.e.
2020-11-25 14:36:33 3984 4
原创 【蓝桥杯复习计划】C++程序设计B组
【蓝桥杯复习计划】C++程序设计B组引用2020年官网的试题考查范围(标*的部分不在B组考察范围 )。计算机算法:枚举、排序、搜索、计数、贪心、动态规划、图论、数论、博弈论*、概率论*、计算几何*、字符串算法等。数据结构:数组、对象/结构、字符串、队列、栈、树、图、堆、平衡树/线段树、复杂数据结构*、嵌套数据结构*等。计算机算法:...
2020-11-06 21:55:50 1173
原创 ( 动态规划专题 )【 分组背包 】
( 动态规划专题 )【 分组背包 】问题:n件物品,有重量w和价值p,将这些物品划分成k组,每一组里只能选择至多1件物品,背包容量为sum,求价值最大能拿多少分组背包就是01背包的变式,只不过加了个限制,每个组最多只能拿一个,这就只需要把一个组抽象成一个物品作为第一个for循环,在第二层for循环固定住当前背包容量v时,再枚举这个组的物品看看那个最优更新dp[v]。分组背包: for i=1 to k { for v=sum to 0 { .
2020-10-26 19:49:26 228
原创 ( 求区间第k大及大于等于它的和 )【 主席树扩展 】
( 求区间第k大及大于等于它的和 )【 主席树扩展 】即求区间第1大+第2大+第3大+...+第k大的和。比如:a = 1 2 3 4 5query(1,5,5) = 5+4+3+2+1query(2,4,2) = 4 + 3query(1,3,1) = 3引入sumt数组,表示当前点及其儿子节点的和。int update( int pre, int left, int right, int x ){ int node = tot++; L[node] =.
2020-10-23 21:04:10 622 1
翻译 C - Crusher’s Code( 概率dp )
C - Crusher’s Code( 概率dp )题目链接:https://codeforces.com/gym/101655/attachments/download/6474/20132014-acmicpc-pacific-northwest-regional-contest-en.pdf题意(翻译润色了一下):^▽^神秘的三角洲一直流传着一个关于排序的问题。你在旅途中遇到了Monly和Carlos,他们都对自己解决这个问题的方案很有信心。Monty的代码是这样的: ..
2020-10-10 20:25:54 217
转载 ( 图论专题 )【最大团 】
( 图论专题 )【最大团 】当 G′是图 G的子图,且 G′是关于 V′ 的完全图时,子图 G' 为图 G 的团;当 G' 是团,且不是其他团的子集时,G' 为图 G 的极大团;当 G' 是极大团时,且点数最多,G' 为图 G最大团当 G′ 中所有点不相邻,最大点集最大的图 G′ 为图 G 的最大独立集,且最大独立集数=补图的最大团当用个数最少的团覆盖图 G 所有的点时,称为最小团覆盖,由于每个团中最多取一个点,因此有最大独立集<=最小团覆盖简单来说,极大...
2020-10-10 19:24:25 955
翻译 ( 动态规划专题 )【 概率dp 】
( 动态规划专题 )【 概率dp 】一般来说,概率DP找到正确的状态定义后,转移是比较容易想到的。但状态一定是“可数”的,把有范围的整数作为数组下标。事实上,将问题直接作为状态是最好的。如问“n人做XX事的期望次数”,则设计状态为f[i]表示i个人做完事的期望。转移一般是递推,即从上一个状态转移得(填表)或转移向下一个状态(刷表)。有时期望DP需以最终状态为初始状态转移,即逆推。如f[i]表示期望还要走f[i]步到达终点。这种状态的转移是刷表法,形如 ,其中p[] 表示...
2020-10-09 19:52:37 203
翻译 【摩尔投票法】O(n)求众数 不用桶
O(n)求众数 不用桶众数的求解方式一般是用桶来计算,但是有时候数据比较大,桶开不了这么大,就需要用map,这就在O(n)的基础上加了个log。摩尔投票法基于这样一个事实,当一个数的重复次数超过数组长度的一半,每次将两个不相同的数删除,最终剩下的就是要找的数。当然,我们要求一个数列的众数,这个数列首先要存在众数。我们这个算法的前提条件是这个数列确实有众数存在( 并且这个众数出现的次数要大于数列长度的一半 )。为了更容易理解,我们将每一种数想象成一个帮派有众数帮,和非众数帮,这些..
2020-10-01 11:06:51 306
原创 J - Subway Chasing ( 差分约束 )
J - Subway Chasing ( 差分约束 )题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6252题意:有1~n号地铁站( Alice和Bob住在1,公司在n )。Alice和Bob是好朋友,有一天早上Alice先出发了,X分钟后Bob才出发。Bob非常着急,于是他开始与Alice用手机聊天,聊天内容只交流他们当前的位置。 ( 3,3)表示当前正好在3号站点, (4,5)表示当前在4号站和5号站之间。在每个车站停留的时间忽略不计。到..
2020-09-28 21:22:55 262
原创 ( 图论专题 )【 二分图染色 】
( 图论专题 )【 二分图染色 】二分图的判定方式:图中没有边数为奇数的环。二分图的另一种等价的说法是,可以把每个节点着以黑色和白色之一,使得每条边的两个端点颜色不同。不难发现,非连通的图是二分图当且仅当每个连通分量都是二分图,因此我们只考虑无向连通图。#include<bits/stdc++.h>#define int long longusing namespace std;const int maxn = 2e5+10;vector<int&g..
2020-09-25 20:13:14 399
原创 做过最有意思的交互题
做过最有意思的交互题一栋楼,楼外有n盏灯,楼内有n个开关,灯和开关一 一对应,但是开始并不知道哪个开关对应那盏灯。现在你有一种操作是:打开若干开关,然后去楼外面看看哪些灯亮了。问如何在30次操作之内,得到所有200000盏灯和开关的对应关系。思路:考虑按照二进制位来开灯,第一次操作把编号二进制第1位为1的灯打开,第二次操作把编号二进制第2位为1的灯打开. 这样记录某盏灯分别在第几次亮了就能得到他对应的编号了。 比如第一盏灯在第1,2,5次亮了, 那么它对应的开关编号是10011,就是19.
2020-09-09 21:00:16 260
转载 C - Explode ‘Em All( 状压dp )
C - Explode 'Em All( 状压dp )http://codeforces.com/gym/101246/problem/C题意:给出一个n*m的图,“*”表示这个地方需要炸掉,炸弹可以如果丢在(i,j)位置的话,那么可以炸掉第i行第j列的所有“*”。问最少需要丢多少个炸弹可以使得所有“*”被炸掉。思路:一看就以为是个最小顶点覆盖。然后发现做不了。。。枚举行的状态i,1表示这一行不炸,0表示炸了这一行。然后递推。这里用bitset维护行的状态。f[i][j]表示.
2020-08-18 20:10:37 178
转载 Codeforces Round #663 (Div. 2) D. 505 ( 纯思维 没用dp )
Codeforces Round #663 (Div. 2) D. 505 ( 思维+暴力 没用dp )转自:https://blog.csdn.net/qq_43627087/article/details/107927412题意:给定一个 n×m的 01矩阵,求至少要改多少个元素,使得每个边长为偶数的正方形都包含奇数个1。或无解。若存在边长为4的正方形,肯定是无解的。因为将它拆成4个边长为2的正方形,奇+奇+奇+奇=偶。n=1:显然答案为0; n=2:每列...
2020-08-12 21:16:18 232
转载 ( 其他算法与技巧 )【 C++ bitset 用法 】
( 其他算法与技巧 )【 C++ bitset 用法 】C++的 bitset 在 bitset 头文件中,它是一种类似数组的结构,它的每一个元素只能是0或1,每个元素仅用1bit空间。下面是具体用法构造函数bitset常用构造函数有四种,如下bitset<4> bitset1; //无参构造,长度为4,默认每一位为0 bitset<8> bitset2(12); //长度为8,二进制保存,前面用0补充 string s = "100.
2020-08-11 10:17:40 185
转载 ( 数论专题 )【 欧拉筛 】
( 数论专题 )【 欧拉筛 】线性筛是一个很基础的算法,但是我一直没学。直到一次考试,因为O(n√n)会超时,用了表筛,结果被卡了代码长度,于是开始学习欧拉筛。算法思路:对于每一个数(无论质数合数)x,筛掉所有小于x最小质因子的质数乘以x的数。比如对于77,它分解质因数是7*11,那么筛掉所有小于7的质数*77,筛掉2*77、3*77、5*77。 好吧,是不是听起来太简单了。。。。没事,重点在证明。算法证明: 首先我们要明确证明思路。如果要证明它是对的,只要保证两点:没用...
2020-08-11 08:47:34 123
翻译 ( 其他算法与技巧 )【 线性递推 Berlekamp-Massey算法 】
( 其他算法与技巧 )【 线性递推 Berlekamp-Massey算法 】原理请看:https://blog.csdn.net/qq_39972971/article/details/80725873算法用处: 求解一个数列的最短线性递推式比如:1 2 3 4 5 6 7 8 9 的最短递推式是 { 2,-1 } 即 f ( i )= 2 * f ( i-1 ) + (-1) * f ( i-2 )数列{1,2,4,9,20,40,90}的递推式即为R5={0,0,10,0}。 ...
2020-08-08 10:39:32 317
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人