在看CS231n的时候,有这么一行代码it=np.nditer(x,flags=['multi_index'],op_flags=['readwrite'])查了查np.nditer原来是numpyarray自带的迭代器。这里简单写个demo解释一下np.nditer的用法。先构建一个3x4的矩阵然后输入命令flags=['multi_index']表示对a进行多重索引,具体解释看下面的代码。op_flags=['readwrite']表示不仅可以对a进行read(读取),还可以write(写入),即相当于在创建这个迭代器的时候,我们就规定好了...
继续阅读 >
分类:全部列表
2021
06-22
06-22
Java设计模式之桥梁(Bridge)模式
桥梁模式的结构桥梁模式是对象的结构模式。如上图所示,系统含有两个等级结构:由抽象化角色和修正抽象化角色组成的抽象化等级结构。由实现化角色和两个具体实现化角色所组成的实现化等级结构。桥梁模式所涉及的角色有:抽象化(Abstraction)角色:抽象化给出的定义,并保存一个对实现化对象的引用。修正抽象(RefinedAbstraction)化角色:扩展抽象化角色,改变和修正父类对抽象化的定义。实现化(Implementor)...
继续阅读 >
2021
06-22
06-22
详解java 中的CAS与ABA
1.独占锁:属于悲观锁,有共享资源,需要加锁时,会以独占锁的方式导致其它需要获取锁才能执行的线程挂起,等待持有锁的钱程释放锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。Java中synchronized和ReentrantLock等独占锁就是悲观锁的思想。1.1乐观锁的操作多线程并发修改一个值时的实现:publicclassSimulatedCAS{//加volatile的目的是利用其happens-before...
继续阅读 >
2021
06-22
06-22
JVM中ClassLoader类加载器的深入理解
JVM的体系结构图先来看一下JVM的体系结构,如下图:JVM的位置JVM的位置,如下图:JVM是运行在操作系统之上的,与硬件没有直接的交互,但是可以调用底层的硬件,用JIN(Java本地接口调用底层硬件)JVM结构图中的classfiles文件classfiles文件,是保存在我们电脑本地的字节码文件,.java文件经过编译之后,就会生成一个.class文件,这个文件就是classfiles所对应的字节码文件,如下图:JVM结构图中的类加载器ClassLoader的解释&nb...
继续阅读 >
2021
06-22
06-22
Java基础之集合Set详解
目录一、概述二、Set的常用方法三、Set的遍历3.1增强for循环3.2迭代器遍历一、概述Set是Java中的集合类,提供了一种无顺序,不重复的集合。常用的子类包括HashSet,TreeSet等。HashSet底层使用HashMap实现,根据元素的hashCode和equals来判断是否为重复元素。当元素的hashCode相同且equals返回true时则认为是重复元素。因为使用了hash算法所以HashSet有很好的添加和访问性能。可以放入null但只能放一个nullTreeSet底层使...
继续阅读 >
2021
06-22
06-22
numpy 实现返回指定行的指定元素的位置索引
先上代码,主要语句为np.where(b[c]==1),详细解释如下:importnumpyasnpb=np.array([[-2,-3,0,0,0,6,4,1],[88,1,0,0,0,6,4,2],[99,6,0,0,1,6,4,2]])#三行八列的数组bprint('b\n',b)c=np.array([2,0])#c表示指定行print('b[c]\n',b[c])#b[c]返回数组b的指定行这里依次返回了b的下标为2和0的行print('\n')print(np.where(b[c]==1))#返回指定行的指定元素的位置索引这里返回了b[c]每行中值为1的位置索...
继续阅读 >
2021
06-22
06-22
Django Admin 管理工具的实现
Django自动管理工具是django.contrib的一部分。你可以在项目的settings.py中的INSTALLED_APPS看到它:/HelloWorld/HelloWorld/settings.py文件代码:INSTALLED_APPS=('django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles',)django.contrib是一套庞大的功能集,它是Django基...
继续阅读 >
数组算法例题1.数组逆序第一个和最后一个互换,第二个和倒数第二个互换,就相当于把数组想下图一样,进行对折互换,如果数组个数为奇数,则中间保持不变其余元素互换即可importjava.util.Arrays;classDemo12{publicstaticvoidmain(String[]args){int[]arr={0,1,2,3,4,5,6,7,8,9};System.out.println(Arrays.toString(arr));reverse(arr);System.out.println(Arrays.toSt...
继续阅读 >
2021
06-22
06-22
shiro整合swagger的注意事项
swagger是一个很好的restapi管理工具,最近又整合了基于shiro的权限控制,出问题了,http://localhost:8080/swagger-ui.html访问不正常,问题肯定是shiro没放行导致的shiro配置在shiroFilter中的配置如下:@Bean(name="shiroFilter")publicShiroFilterFactoryBeanshiroFilterFactoryBean(SecurityManagersecurityManager){ShiroFilterFactoryBeanshiroFilterFactoryBean=newShiroFilterFactoryBean();...
继续阅读 >
2021
06-22
06-22
你要知道IDEA的这些必备插件
一、Idea中的插件的安装方式Idea中插件的安装方式,相信大部分Java开发小伙伴应该都比较熟悉,不过在此我还是想??乱幌隆R?ree-idea-mybatis插件为例。在file->settings->plugins,搜索Free-idea-mybatis如果搜不到的话点击Browserepositories,再搜索Free-idea-mybatis,搜索到之后则点击Install,并重启Idea。其他的插件也是同样的安装方式。二、Free-idea-mybatis接下来介绍的插件就是Free-idea-mybatis插件,这个插件的...
继续阅读 >
2021
06-22
06-22
Pytorch实现全连接层的操作
全连接神经网络(FC)全连接神经网络是一种最基本的神经网络结构,英文为FullConnection,所以一般简称FC。FC的准则很简单:神经网络中除输入层之外的每个节点都和上一层的所有节点有连接。以上一次的MNIST为例importtorchimporttorch.utils.datafromtorchimportoptimfromtorchvisionimportdatasetsfromtorchvision.transformsimporttransformsimporttorch.nn.functionalasFbatch_size=200learning_rate=0.001e...
继续阅读 >
2021
06-22
06-22
spring-security关闭登录框的实现示例
事情要从同事的一个项目说起,项目中需要集成公司的单点登录系统,但是无论如何都无法跳转到正常的登录页面。相反,却始终跳转到另外一个登录页面。但是代码却非常简单,简化一下@ControllerpublicclassSecurityTestController{@GetMapping("/myLogin")publicStringlogin(){return"login";}@GetMapping("/")publicStringhomePage(){return"homePage";}}发现无论是"/myLogin"还是"/"都绕不过登录,...
继续阅读 >
2021
06-22
06-22
pytorch 优化器(optim)不同参数组,不同学习率设置的操作
optim的基本使用fordo:1.计算loss2.清空梯度3.反传梯度4.更新参数optim的完整流程cifiron=nn.MSELoss()optimiter=torch.optim.SGD(net.parameters(),lr=0.01,momentum=0.9)foriinrange(iters):out=net(inputs)loss=cifiron(out,label)optimiter.zero_grad()#清空之前保留的梯度信息loss.backward()#将mini_batch的loss信息反传回去optimiter.step()#根据optim参数和梯度更新参...
继续阅读 >
2021
06-19
06-19
Spring Boot简介与快速搭建详细步骤
SpringBoot简介SpringBoot为了简化在开发基于Spring的项目的难度,减少了哪些繁杂的配置,从而让开发基于Spring的项目变成一个相当简单容易的事。SpringBoot其本身没有添加什么新的技术,就是整合了一些现有的框架,并提供了一些默认的配置,就是这些默认的配置,极大的提高了我们的开发效率。所以,在读者学习使用SpringBoot之前,建议最好要有一些Spring相关知识为基础。SpringBoot极大的简化了Spring与其他框架的整合,例...
继续阅读 >
2021
06-19
06-19
c++中explicit与mutable关键字的深入探究
今天说一说c++里面的两个关键字explicit和mutable。1.explicit关键字在写c++标准输入输出相关文章,查看iostream实现代码的时候,经常看到构造函数前面带有explicit关键字,那么它到底有什么作用呢。explicit用来防止由构造函数定义的隐式转换,先看这样一段代码:#include<iostream>classBase{private:inta;public:Base(intp_a){a=p_a;}~Base(){}voidprint(){std::cout<<"a="<<a<<std::endl;}};...
继续阅读 >
2021
06-19
06-19
详解Java中的内存屏障
为什么要有内存屏障这个是为了解决因为cpu,高速缓存,主内存出现的时候,导致的可见性和重序性问题,什么问题呢,看下面我们都知道计算机运算任务需要CPU和内存相互配合共同完成,其中CPU负责逻辑计算,内存负责数据存储。CPU要与内存进行交互,如读取运算数据、存储运算结果等。由于内存和CPU的计算速度有几个数量级的差距,为了提高CPU的利用率,现代处理器结构都加入了一层读写速度尽可能接近CPU运算速度的高速缓存来作为内存...
继续阅读 >
2021
06-19
06-19
Go实现各类限流的方法
前言在开发高并发系统时,我们可能会遇到接口访问频次过高,为了保证系统的高可用和稳定性,这时候就需要做流量限制,你可能是用的 Nginx 这种来控制请求,也可能是用了一些流行的类库实现。限流是高并发系统的一大杀器,在设计限流算法之前我们先来了解一下它们是什么。限流限流的目的是通过对并发访问请求进行限速,或者对一个时间窗口内的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务、排队或等待、降...
继续阅读 >
2021
06-19
06-19
SpringBoot自动配置原理,你真的懂吗?(简单易懂)
概述上面博文(SpringBoot简介与快速搭建)我们简单的介绍了什么是SpringBoot,以及如何使用SpringBoot,但是我们对于SpringBoot的基本原理并没有介绍,这篇博文我们重点介绍SpringBoot是如何实现的自动配置。依赖管理在我们的pom文件中最核心的依赖就一个:<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.4.4</version><relativePath/></pa...
继续阅读 >
2021
06-19
06-19
Java黑盒测试之nextDate函数测试
一、实验目的(1)掌握应用黑盒测试技术进行测试用例设计。(2)掌握对测试用例进行优化设计方法。二、实验内容日期问题测试以下程序:该程序有三个输入变量month、day、year(month、day和year均为整数值,并且满足:1≤month≤12、1≤day≤31和1900≤year≤2050),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上隔一天的日期。例如,输入为2004年11月30日,则该程序的输出为2004年12月1日。(1)划分等...
继续阅读 >
2021
06-19
06-19
Java 使用Filter实现用户自动登陆
前言安全,是如今互联网行业特别注重的一个话题。在大家学习了JavaWeb之后呢,发现一个网站应该有安全限制,例如:如果用户未登录,则不允许相关CRUD操作,而如果我们在后台的每一个Servlet都进行判断,将降低系统效率,也会出现大量代码冗余。因此,就有了Filter过滤器。1、什么是FilterFilter,过滤器,是处于客户端与服务器资源文件之间的一道过滤网,在访问资源文件之前,通过一系列的过滤器对请求进行修改、判断等,把不符合...
继续阅读 >
2021
06-19
06-19
PyTorch 如何将CIFAR100数据按类标归类保存
few-shotlearning的采样Few-shotlearning基于任务对模型进行训练,在N-way-K-shot中,一个任务中的meta-training中含有N类,每一类抽取K个样本构成supportset,queryset则是在刚才抽取的N类剩余的样本中sample一定数量的样本(可以是均匀采样,也可以是不均匀采样)。对数据按类标归类针对上述情况,我们需要使用不同类别放置在不同文件夹的数据集。但有时,数据并没有按类放置,这时就需要对数据进行处理。下面以CIFAR100为列...
继续阅读 >
2021
06-19
06-19
详解使用Nodejs内置加密模块实现对等加密与解密
加密与解密是保证通讯安全的一种重要手段,现在加密算法已经有很多,并且都有成熟的软件包可以使用,这就大大降低了应用开发程序员的负担,只需要使用这些第三方提供的加密解密库就可以使用了,在Node.js中其实提供了一个非常强大而且方便的加密与解密模块crypto,我们不需要使用第三方的NPM库就能实现简单的加密与解密功能,毕竟使用加密与解密的目的就是为了保证通讯的安全,而使用非官方的第三方库总是有可能存在添加的后门或者...
继续阅读 >
2021
06-19
06-19
python获取linux和windows系统指定接口的IP地址的步骤及代码
实验目的:用户输入网卡名称,通过函数返回对应的IPv4和IPv6地址。实验代码:步骤一:由于window系统下网卡名称并不是真正的名字,而真正的ID在注册表SYSTEM\CurrentControlSet\Control\Network{4d36e972-e325-11ce-bfc1-08002be10318}目录下。所以需要通过如下代码,返回接口名称和唯一ID的对应关系。win_ifname.py:importnetifacesasni#importwinregaswr#将windows下的接口的名称和唯一ID一一对应存入字典并返回defge...
继续阅读 >
2021
06-19
06-19
python排序算法的简单实现方法
1冒泡排序 1.1算法步骤:比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。(1)不管原始数组是否有序,时间复杂度都是O(n2)(2)空间复杂度是O(1)(3)冒泡排序是从最后一位开始确...
继续阅读 >