自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 乐观锁与悲观锁

1、悲观锁1.1 定义总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。Java中synchronized和ReentrantLock等独占锁就是悲观锁思想的实现。手动加悲观锁:读锁:LOCK tables test_db read,释放锁:

2021-04-30 12:57:00 12764 15

原创 MySQL中的delete , drop 和truncate 区别

1、定义(1)、delete是DML,执行delete操作时,每次从表中删除一行,并且同时将该行的的删除操作记录在redo和undo表空间中以便进行回滚(rollback)和重做操作,但要注意表空间要足够大,需要手动提交(commit)操作才能生效,可以通过rollback撤消操作。(2)、delete可根据条,件删除表中满足条件的数据,如果不指定where子句,那么删除表中所有记录。(3)、delete语句不影响表所占用的extent,高水线(high watermark)保持原位置不变。1.

2021-04-30 00:11:59 565

转载 Spring框架——Bean的Scope(作用域)

1、什么是Bean的Scope我们知道,BeanFactory除了作为一个轻量级的IOC容器,能够帮我们方便的管理Bean以及Bean之间的依赖关系,它其实还有着一些其它的功能,那就是管理Bean的Scope,或者说管理这些Bean的生命周期。什么是Scope?亦或者说,什么是Bean的生命周期?Scope用来声明容器中的对象所应该处的限定场景或者说该对象的存活时间,简单点来说,即容器在对象进入其相应的Scope之前,生成并装配这些对象,此时,这些对象就“出生”了;在该对象不再处于这些Scope的限定之

2021-04-26 22:25:44 2837

转载 Spring IoC是如何进行依赖注入的

1、Spring中Bean与property标签的属性说明1.1、Bean 标签的常用属性说明:1.1.1 idid:为实例化对象起的名称,其中id为这个Bean的名称,通过容器的getBean("id字符串")即可获取对应的Bean,在容器中起到定位查找的作用,是外部程序和Spring IOC容器进行交互的桥梁。根据 id 值可以得到我们配置的实例化对象,id 属性的名称原则上可以任意命名,但是能包含任何特殊符号。Spring IOC容器中的一个Bean即对应配置文件中的一个<bean>

2021-04-26 22:06:44 160

转载 Java:对象的序列化、反序列化

1、什么是对象的序列化(Serialization)“序列化”是一种把对象的状态转化成字节流的机制,“反序列”是其相反的过程,把序列化成的字节流用来在内存中重新创建一个实际的Java对象。这个机制被用来“持久化”对象。通过对象序列化,可以方便的实现对象的持久化储存以及在网络上的传输。大致的过程如下图所示:对象被转换成“字节流”后可以存入文件,内存,亦或者是数据库内进行持久化保存。然后通过“反序列化”可以把“字节流”转换成实际的Java对象。对象的序列化是与平台无关的,因此在一个平台上被“序列化”的

2021-04-25 22:00:29 676

原创 同步、异步 and 阻塞、非阻塞

1、同步与异步同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous communication)。1.1 同步所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回,但是一旦调用返回,就得到返回值了。换句话说,就是由调用者主动等待这个调用的结果。1.2 异步异步的概念和同步相对。当一个异步过程调用发出后,这个调用就直接返回了,调用者不能立刻得到结果,实际处理这个调用的执行部件在完成操作后,通过状态、通知或回调来通知调用者。

2021-04-25 21:06:34 193

原创 深度学习思想汇总与常见算法汇总

1 反向传播1.1 反向传播算法推导过程(非常详细)链接:https://blog.csdn.net/BieberChen/article/details/1000591021.2 四张图彻底搞懂CNN反向传播算法链接:https://blog.csdn.net/BieberChen/article/details/1006270421. 3 前向传播与反向传播的理解与推导过程链接:https://mp.weixin.qq.com/s/exG3_jNdrl0U1Oq1i5M–w1.4 LSTM

2021-04-24 16:18:28 153 1

原创 Java:float/double取值范围与精度、BigDecimal

0、基本数据类型1、浮点数的表示在同等位数的情况下,浮点数可表示的数值范围比整数的大;浮点数无法精确表示其数值范围内的所有数值,只能精确表示可用科学计数法m*2e表示的数值而已;(如0.5的科学计数法是2-1,则可被精确存储;而0.2则无法被精确存储)浮点数不仅可表示有限的实数,还可以表示有限的整数。1.1 浮点数结构要说清楚Java浮点数的取值范围与其精度,必须先了解浮点数的表示方法,浮点数的结构组成,之所以会有这种所谓的结构,是因为机器只认识0和1,你想表示小数,你要机器认识小数点这

2021-04-24 14:03:33 916

转载 java值交换【2】

第一种方法、利用中间值的方法来交换第二种方法、利用变量加减的方法(如果x和y的值非常大,会超出int范围)第三种方法、利用变量乘除的方法(如果x和y的值非常大,会超出int范围)第四种方法、利用异或运算符的方法(不用担心超出int的范围)...

2021-04-23 17:37:10 85

转载 java值交换【1】

1、起因如何实现java的值交换,看起来好像很简单,但是一顿操作后,发现结果没有改变。 public static void main(String[] args) { Integer a=1; Integer b=2; swap(a,b); //要求输出a=2 b=1 System.out.println("a="+a+",b="+b); } private static void swap(Intege

2021-04-23 17:22:30 384

转载 Python之lambda&map&reduce&filter

1、Python lambda之前没怎么看过Python的lambda(匿名函数)的用法,最近抽空记一下。lambda本质是一个可以返回单个值的函数(输入参数则不限)。 其函数形式为:lambda <input1>, <input2>, <input3>:<expression>冒号之前是输入的参数,冒号之后是返回的表达式。比如f ( x , y , z ) = x + y + z 的匿名函数表达式为:lambda x, y, z: x+y+z

2021-04-23 00:07:47 107

原创 Maven学习1:程序员的项目管理工具

引言开发有依赖的项目假如你正在Eclipse下开发两个Java项目,姑且把它们称为A、B,其中A项目中的一些功能依赖于B项目中的某些类,那么如何维系这种依赖关系的呢?很简单,这不就是跟我们之前写程序时一样吗,需要用哪个项目中的哪些类,也就是用别人写好了的功能代码,导入jar包即可。所以这里也如此,可以将B项目打成jar包,然后在A项目的Library下导入B的jar文件,这样,A项目就可以调用B项目中的某些类了,可是,如果在开发过程中,发现B中的bug,则必须将B项目修改好,并重新将B打包并对A项目进行

2021-04-21 10:54:31 219

转载 字符串String、StringBuffer、StringBuilder

一、String类概述1、概述java.lang.String类代表字符串。Java程序中所有的字符串文字(例如 “abc” )都可以被看作是实现了此类的实例。String 是引用数据类型,不是基本数据类型。类String 中包括用于检查各个字符串的方法,比如用于比较字符串,搜索字符串,提取子字符串以及创建字符串的副本。2、特点【重要】a、字符串不变:字符串的值在创建后不能被更改。【非常重要】String s1 = "abc";s1 += "def";System.out.println(s

2021-04-19 10:59:41 493

转载 【MXNet学习27】mxnet+gluon快速入门

import numpy as npimport mxnet as mximport logginglogging.getLogger().setLevel(logging.DEBUG) # logging to stdout1、mxnet基本数据结构1.1 ndarrayndarray是mxnet中最基本的数据结构,ndarray和mxnet的关系与tensor和pytorch的关系类似。该数据结构可以看成numpy的一种变体,基本上numpy的操作ndarray都可以实现。与ndarra

2021-04-15 20:54:58 1353

转载 【MXNet学习26】MXNet autograd 自动求导

MXNet 提供 autograd 包来⾃动化求导过程。MXNet 的 autograd 包可以对正常的命令式程序进⾏求导。from mxnet import autograd,nd #创建变量,并复制x = nd.arange(4).reshape((4,1)) #先使用attach_grad()为变量梯度申请内存x.attach_grad() #定义有关变量x的函数。默认条件下,为了减少计算和内存开销,MXNet不会记录用于求梯度的计算图。我们需要调用record函数来要求MXN.

2021-04-12 23:44:13 647

原创 【Python 脚本报错】AttributeError:‘module‘ has no attribute ‘xxx‘的解决方法

1、出现的问题最近在编写Python脚本过程中遇到一个问题比较奇怪:File "/home/anirrudh/.virtualenvs/ml4t2/local/lib/python2.7/site-packages/numpy/ma/core.py", line 30, in <module>import numpy.core.umath as umathAttributeError: 'module' object has no attribute 'core'Python是脚本正

2021-04-11 23:43:37 33525 1

原创 【MXNet学习25】4.4 测试代码详细解读

4.3节通过代码清单4-2给出了完整的测试代码,与训练代码相比,测试代码相对要简单一些,整体而言只需要导入模型后执行模型的前向计算即可,不涉及损失的反向传播、参数更新等过程。通过4.3节的介绍,相信你对整个测试代码有了一个直观的认识,接下来我将详细介绍测试代码的内容,主要包含模型导入、数据读取和预测输出三个部分。4.4.1 模型导入MXNet框架在训练深度学习模型过程中会保存两个主要文件,即“.params文件”和“.json文件”,前者是模型的参数,后者是模型的网络结构,因此在导入模型时需要同时导入

2021-04-11 18:45:56 199

原创 【MXNet学习24】4.3 测试代码初探

在训练得到一个模型后,一般可以通过一个测试代码测试模型在指定输入图像时的输出结果,从而判断训练得到的模型是否有效。有时候测试代码也被称为demo,可以用来展示模型训练的效果,因此测试代码是一个完整项目必不可少的部分。完整的测试代码如代码清单4-2所示,主要包含模型导入、数据读取和预测输出3个部分,下面假设这些代码都保存在test_mnist_code4-2.py脚本中。代码清单4-2 MNIST手写数字体分类测试代码 import mxnet as mximport numpy as npdef

2021-04-11 18:21:36 132

原创 【MXNet学习23】4.2 训练代码详细解读

4.1节中介绍了一个完整的MNIST手写数字体分类代码,这几乎是每一个入门深度学习的人都会运行的实验。一个比较好的代码阅读习惯既可以是从全局到局部,也可以是从局部到全局,这样才能建立起对代码的完整认识。目前开源的深度学习相关的项目非常多,但不论这些项目的代码量如何,基本上每个项目的代码都是分模块维护的,比如专门的数据读取模块、模型构建模块、参数配置模块等,这对于阅读复杂项目的代码尤其有帮助。因此希望读者能够逐渐养成这样的习惯,并应用在今后的代码书写中。通过4.1节的介绍,相信你对整个训练代码有了一个直观的

2021-04-11 17:40:50 343

原创 【MXNet学习22】4.1 训练代码初探

为了让读者对训练代码有一个直观的认识,首先我们完整地看一下训练代码,如代码清单4-1所示。代码清单4-1中的代码主要分为训练参数配置、数据读取、网络结构搭建和训练模型四大部分,这四个部分在接下来几节中将进行详细介绍。 代码清单4-1 MNIST手写数字体分类训练代码 import mxnet as mximport argparseimport numpy as npimport gzipimport structimport loggingdef get_network(num_clas

2021-04-11 17:05:04 119

原创 【MXNet学习21】 4 MNIST手写数字体分类

相信很多读者在刚刚入门深度学习时都会运行一下MNIST数据集,MNIST数据集链接地址为:http://yann.lecun.com/exdb/mnist/。MNIST是一个手写数字的数据集,该数据集中包括训练集和测试集两部分,训练集包含了60000个样本,测试集包含了10000个样本,图4-1显示了MNIST数据集的图像样例,本章讲介绍如何使用MXNet框架实现MNIST手写数字体的分类。计算机对图像的认知并没有人类对图像的认知那么直观,那么计算机看到的图像到底是什么样的呢?其实图像数据对于计算机而言

2021-04-11 16:33:01 282

原创 【MXNet学习20】 本章小结

本章主要介绍了MXNet框架中最常用到的三个模块:NDArray、Symbol和Module,对比了三者之间的联系并通过简单的代码对这三个模块的使用有了大致的认识。NDArray是MXNet框架中最基础的数据结构,借鉴了NumPy中array的思想且能在GPU上运行,同时采取命令式编程的NDArray在代码调试上非常灵活。NDArray提供了与NumPy array相似的方法及属性,因此熟悉NumPy array的用户应该能够很快上手NDArray的操作,而且二者之间的转换也非常方便。Symbol是MX

2021-04-11 15:18:59 94

原创 【MXNet学习19】3.3 Module

在MXNet框架中,Module是一个高级的封装模块,可用来执行通过Symbol模块定义的网络模型的训练,与Module相关的接口介绍都可以参考Module的官方文档地址:https://mxnet.apache.org/api/python/module/module.html。Module接口提供了许多非常方便的方法用于模型训练,只需要将准备好的数据、超参数等传给对应的方法就能启动训练。在3.2节,我们用Symbol接口定义了一个网络结构sym,接下来我们将基于这个网络结构介绍Module模块,首先

2021-04-11 15:18:23 182

原创 【MXNet学习18】3.2 Symbol

Symbol是MXNet框架中用于构建网络层的模块,Symbol的官方文档地址是:https://mxnet.apache.org/api/python/symbol/symbol.html,与Symbol相关的接口都可以在该文档中查询。与采用了命令式编程(imperative programming)的NDArray不同的是,Symbol采用的是符号式编程(symbolic programming),其是MXNet框架实现快速训练和节省显存的关键模块。之前我们介绍过符号式编程的含义,简单来说就是,符号式编

2021-04-11 14:32:07 324

原创 python工作目录和脚本存放目录不一样

1、os.getcwd()脚本文件所在位置D:\Code\python\TouTiao\OS\Path\Dirname.py,文件内容如下:path1 = os.path.abspath(os.path.dirname(os.getcwd()))print('path1: ', path1)调用后,输出的是# path1: D:\Code\python\NLP,结果并不是想要的当前文件路径。为什么会这样?去看getcwd源码,其返回得到当前工作路径(working directory)2、那.

2021-04-10 00:20:22 1842 3

原创 【MXNet学习17】3.1 NDArray

MXNet框架中的三大马车:NDArray、Symbol和Module。做一个简单的比喻,假如讲从搭建到训练一个算法的过程比作是一栋房子从建造到装修的过程,那么NDArray就相当于是钢筋水泥这样的部件,Symbol就相当于是房子每一层的设计,Module就相当于是房子整体框架的搭建。这一节主要讲解的是NDArray...

2021-04-09 19:42:34 120

转载 ubuntu无sudo权限以及非root的用户,用apt安装软件

1、apt-get简介在Ubuntu系统中,经常要用到apt-get install XXX指令来安装软件,由于常常需要root权限来操作,所以搭配sudo食用口感更佳,apt-get指令对于安装、卸载、升级软件提供一条龙服务,对比于源码安装,实在是业界良心。1.1 源码安装源码安装的流程一般是三部曲:./configuremakemake install ./configure是为了检测目标安装平台的特征,并且检查依赖的软件包是否可用或者是否缺少依赖软件包,configure事实上是个

2021-04-09 17:01:59 24845 1

原创 Eclipse 导入Gson包

1、下载You will need to download Gson Jar ( “gson-2.6.2.jar” ) from the maven repo. Make sure to keep a note of where you saved it.2、创建一个对于Gson的用户库(Creating a User Library for Gson)Open Windows >preferences in the Eclipse menuavigate to the Java >B

2021-04-07 21:21:25 1765

原创 FFmpeg的安装及使用

1、FFmpeg是什么FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。2、FFmpeg的下载官网:https://www.ffmpeg.org/github地址:https://github.com/FFmpeg/FFmpeg官网与GitHub上

2021-04-07 17:19:16 877

原创 Latex中 \label{...} 的妙用

1、标题序号在章节标题后加个\label{…}, 引用处直接\ref{…}2、公式需要引用上面的关键字,直接使用命令:\ref{18eq104}如果需要在公式编号放在括号里面,直接使用命令\eqref{18eq104}https://jingyan.baidu.com/article/02027811c033365bcd9ce559.html3、图使用\label{fig: 别名}4、表使用\label{tab: 别名}...

2021-04-04 16:11:30 9910

IRFANVIEW支持的功能很多,可以批量转换格式、批量重命名、JPG无损旋转、调整图像大小、调整颜色深度、添加覆盖文字水印

IRFANVIEW支持的功能很多,可以批量转换格式、批量重命名、JPG无损旋转、调整图像大小、调整颜色深度、添加覆盖文字水印

2024-07-15

柯尼卡美能达复印机,使用TCP/IP地址或主机名添加打印机

柯尼卡美能达复印机,使用TCP/IP地址或主机名添加打印机

2024-01-30

内含两个文件,分别加密文件与文件夹 便携单文件无需安装,打开就可以使用

内含两个文件,分别加密文件与文件夹 便携单文件无需安装,打开就可以使用

2023-10-20

KMFtp.exe是FTP的一个设置软件程序,可以让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)查看远程计算机

KMFtp.exe是FTP的一个设置软件程序,可以让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)查看远程计算机

2023-10-17

柯美ftp扫描设置教程

柯尼卡美能达/震旦的FTP扫描是设置相对比较简单的一种扫描方式,它是在电脑上安装一个FTP扫描软件,固定好电脑IP地址,复印机扫描后直接将文件扫描至电脑的一种数据传送方式,与SMB扫描相比,FTP扫描不需要设置文件夹共享,安装步骤更为便捷,更适合win10系统的电脑。下面我们以柯尼卡美能达C364e为例,详细讲解一下FTP扫描如何设置。

2023-09-11

pandoc与配套的pandoc-crossref

pandoc与配套的pandoc-crossref

2022-04-21

ffmpeg-20191217-bd83191-win64-static.zip

ffmpeg-20191217-bd83191-win64-static.zip

2021-04-07

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除