- 博客(68)
- 资源 (1)
- 收藏
- 关注
原创 nginx的http缓存功能配置
nginx配置http缓存的示例:创建缓存目录mkdir /data/myproject/ngx_cache -p将tmpfs挂载于ngx_cache目录上来加速缓存的读取和写入mount -t tmpfs -o size=500M tmpfs /data/myproject/ngx_cachenginx的配置文件, /etc/nginx/nginx.confhttp 标签中添加proxy_cache_path /data/myproject/ngx_cache levels=1:2 key
2021-07-14 00:25:01
696
原创 SELECT 嵌套查询引起的 DEPENDENT SUBQUERY 问题
在使用select嵌套查询时,当外层查询和内层查询使用到同一张表的别名的时候,就可能由于执行器优化导致执行顺序出现问题,从而出现不太符合常规的结果。先看一个例子:例子中有两张表,如下所示:表 department:表employee:表结构和数据都比较简单,下面看一段SQL代码:SELECT d.Name AS 'Department', e.Name AS 'Employee', e.Salary FROM Employ...
2021-07-01 20:10:43
914
2
转载 MySQL中的各种锁(表锁、行锁、共享锁、排他锁、间隙锁、意向锁等)
锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的 计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一 个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。本章我们着重讨论MySQL锁机制 的特点,常见的锁问题,以及解决MySQL锁问题的一些方法或建议。 Mysql用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作.
2021-06-11 17:14:26
612
原创 使用MobPush实现消息推送(使用别名实现精准推送)
消息推送功能。在实际项目中,需要集成消息推送的功能,从而可以及时地提醒用户一些信息,比如订单发货、奖励金到账等。同时,也可以向用户推送一些平台的优惠,或者一些广告。。。。这个功能可采用 MobPush 这个第三方提供的库来实现, 而且最重要的是,它是完全免费的!!!!MobPush首页实现消息推送的技术文档消息推送的工程代码参考上面三个链接,基本就可以实现消息推送的功能了。这里针对 推送目标 再做一点说明,官方允许的选项是目标类型:1广播;2别名;3标签;4regid;5地理位置;6用户分群
2020-08-11 16:28:52
1180
原创 阿里云、腾讯云实人认证(身份证、人脸图像比对)
调用第三方API,实现实名认证的功能。阿里云实名认证首先,导入maven依赖<dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>4.4.3</version></dependency><dependency> <
2020-08-11 15:43:45
3743
原创 发送验证码,阿里短信服务
使用阿里云提供的短信服务,实现根据手机号发送验证码的功能。首先,导入maven依赖<dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>4.5.0</version></dependency>传入手机号,以及要发送的验证码内容,调用该函数就可以实现验证
2020-08-11 15:04:24
251
原创 使用OSS API上传图片、视频等到阿里云(以及解决无法在线预览图片的问题)
向阿里云上传图片、视频、或者其他一些文件。// 上传文件private static String upFile(String file,String newName){ String endpoint = "http://oss-cn-hangzhou.aliyuncs.com"; String accessKeyId = "********x1S7yOby"; String accessKeySecret = "*********fT0csI9Bzdv"; OSS
2020-08-11 14:46:11
2751
原创 使用java生成指定长度的随机验证码
生成随机验证码可以自定义长度,而且可以自己指定生成的验证码内容的取值范围。/** * 获取验证码 * @return */public static String generateSmsCode(int len){ String result = ""; for (int i = 0; i < len ; i++) { result = result + randomChar(); } return result;}
2020-08-07 21:15:06
357
原创 在postgre数据库中,强制删除一个数据库
在使用postgre数据库时,有时我们可能需要删除其中某个数据库,但是采用可视化管理工具(如navicat)进行删除时,却一直提示其他程序正在使用,无法删除。即使我们已经把调用该数据库的程序都关了,他还是提示有其他的程序正在使用,这时我们就可能需要去进一步看那些程序在使用,然后在一个一个关闭,这个方法太麻烦,而且有时我们很难确定到底是哪个程序在使用数据库。我就是想要删除一个不想再使用的数据库,为什么这么难???有简单的方法吗?有,而且简单粗暴,包治一切!我们只需要新建一个查询窗口(也就是可以编写s
2020-08-07 21:03:31
1433
原创 java中对象和JSON的互转(使用JSON-lib实现)
在开发中,通常情况下,后台需要将所有的信息转成JSON格式返回到前端,同时,有时也要将前端传递的JSON格式的信息解析成对象进行处理,这就涉及到了JSON和对象之间的互相转换问题。什么是JSONJSON是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据。层次结构简洁、清晰,易于人阅读和编写,同时也易于机器解析和生成,而且可以有效地提升网络传输效率。示例:{ "people":[ { "firstName": "Brett", "
2020-08-07 20:50:38
242
原创 利用java生成uuid
在实际项目中,我们可能想生成一个随机的而且可以保证唯一的标识,比如在给图片命名时,这时就可以采用uuid来生成随机字符串,这个随机字符串基本上是不会出现重复的。什么是UUIDuuid,就是 通用唯一识别码 的缩写。它的组成比较复杂,是基于当前时间(纳秒级时间)、计数器、硬件标识(通常是MAC地址)以及随机数等组合来生成的,一般情况下,不会生成重复的UUID(重复几率非常小,据概率估计,若每秒产生10亿笔UUID,100年后只产生一次重复的机率是50%),所以,我们大可不必考虑发生重复的问题。它有很多不
2020-08-07 20:17:51
14007
原创 获取视频第一帧、指定帧(java实现、阿里oss自动实现)
在实际项目中,上传视频后,需要将视频的首帧截取出来显示,从而可以清晰看出视频具体是哪一个,这就要实现一个功能来截取视频的指定帧。用java借助第三方库实现首先,使用maven来管理项目,导入依赖, <dependency> <groupId>org.bytedeco</groupId> <artifactId>javacpp&l.
2020-08-06 20:13:43
4193
转载 什么是数字签名、数字证书?
数字签名是什么?今天,我读到一篇好文章。它用图片通俗易懂地解释了,“数字签名”(digital signature)和"数字证书"(digital certificate)到底是什么。我对这些问题的理解,一直是模模糊糊的,很多细节搞不清楚。读完这篇文章后,发现思路一下子就理清了。为了加深记忆,我把文字和图片都翻译出来了。====================================================数字签名是什么?原文网址:http://www.youdzone.co
2020-08-05 15:05:46
175
原创 Base64编解码原理以及其和图片之间的互相转换
有时,在实际项目中,需要将图片编码为Base64格式,然后进行传送。比如,腾讯云中一些实名认证的服务,就需要将图片编码为Base64格式,然后调用API接口进行验证。那到底什么是Base64呢?一、Base64百度百科解释是:Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。什么是“可打印字符”呢?为什么要用它来传输8Bit字节码呢?在回答这两个问题之前我们有必要来思考一下什么情况下需要使用到Base64?Ba.
2020-08-04 20:53:59
8672
1
原创 重建二叉树(剑指offer 第七题)(多种方式实现)
07、重建二叉树题目:输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7分析:首先分析前序遍历和中序遍历的特点:前序遍历—>根左右; 中序遍历---->左根右所以,前序遍历中,第一个数一定是根节点,又因为
2020-06-25 22:25:05
150
原创 matlab进行图像傅里叶变换去噪(fft2、fftshift、ifft2、ifftshift)
在数字图像处理中,去噪是一个经常进行的操作。除了在空域上进行去噪,比如使用均值滤波、中值滤波等等滤波器外,利用傅里叶变换在频域上进行操作也是一种非常有效的方式。使用傅里叶变换进行图像去噪的原理如下:我们知道,图像中的噪声往往代表着图像上灰度值的突变,从而对应着高频部分,而图像中的其他大部分内容则主要集中在低频部分。因此,通过将空间图像进行傅里叶变换后,转化到频域上,我们可以得到这个图像每个...
2020-03-23 21:15:35
31315
13
原创 python中绘制三维曲面图 (mpl_toolkits.mplot3d 的 Axes3D)
先占个位,以后有机会在详细写。附一个实例链接:python三维绘图
2020-03-17 17:39:04
3511
原创 np.sum和sum区别、np.tile()、np.clip()、np.outer()、np.dot()和np.multiply()和np.matmul()和 * 的区别
一、np.sum()和sum的区别如果只用sum()的话,表示的是数组中对应维度上的数相加,得到的是比原始数组少一维的数组。如果写 np.sum() 的话,表示一个数组中的维数和列数上的所有数都加在一起,得到的是一个数值。二、np.tile()b = tile(a,(m,n)): 即是把a数组里面的元素复制n次放进一个数组c中,然后再把数组c复制m次放进一个数组b中,通俗地讲就是将a在行...
2020-03-17 17:24:55
1025
原创 numpy 中的 np.pad() 函数
一、参数解释ndarray = numpy.pad(array, pad_width, mode, **kwargs)array为要填补的数组pad_width是在各维度的各个方向上想要填补的长度,如((1,2),(2,2)),表示在第一个维度上水平方向上padding=1,垂直方向上padding=2,在第二个维度上水平方向上padding=2,垂直方向上padding=2。如果直接输入...
2020-03-17 14:01:08
860
1
原创 自动求解数独(9 X 9)
在疫情防控的关键时刻,在家闲来无事,就尝试着在手机上玩数独游戏。但是解起来比较让人头疼,一不小心填错就要从头再来,费时耗力。(但是对于锻炼思维是极好的,哈哈哈哈哈哈哈哈嗝…)为了能够快速解决数独问题,顺便温习温习一个寒假没有摸过的python和算法,所以就计划自己编程来实现数独的自动填充。采用的思想是**回溯**。通俗一点说就是从头到尾一个一个试,有点类似于深度优先搜索,当进行到某一个位置不...
2020-02-23 12:24:50
2187
5
原创 将 .ipynb 文件转换为 .py文件
首先,确保安装了 jupyter 包,没有安装就 pip install 一下;然后,将其路径添加到系统路径中;之后,cmd 打开命令行,切换当前目录到 .ipynb 文件所在目录下;输入命令:jupyter nbconvert --to script ****.ipynb**** 指的是自己的文件名回车后就完成了转换,新生成的文件名和原文件名一致,并在同一目录下。...
2020-01-12 15:13:07
297
原创 基于django框架,使用python搭建web服务器的步骤
本文主要介绍如何从零开始,进行一个 django 框架下 web 服务器的搭建,这里只简要介绍搭建的步骤。1、首先,cmd进入命令行,切换当前目录到你要在哪里进行创建项目的目录下,比如我在 D:\web\ 下创建目录,则如下所示:2、然后,输入 django-admin startproject projectname (其中,projectname是你项目的名字,...
2019-12-09 21:54:47
1237
原创 基本的 TCP Socket 编程(c++、linux环境下)
本文简要介绍并实现一个客户端和服务器之间进行通信的程序,主要目的是为了了解建立客户端和服务器连接的过程,熟悉相应的API。主要用到的API有如下几个,socket()、connect()、bind()、listen()、accept()。下面附一个简单的代码实现:首先,是客户端程序:#include <sys/socket.h>#include &l...
2019-12-09 20:15:41
376
原创 np.resize 和 np.reshape 的区别
二者都是改变输入的形状,但是区别是: reshape只能改变形状,不能改变原始输入包含的元素个数 resize可以改变尺寸。具体看下面的例子:import numpy as npa = [[1,2,3],[4,5,6]]b1 = np.reshape...
2019-12-02 17:26:43
2366
原创 网络爬虫抓取图片并保存到本地(re、urllib)
编写爬虫基本步骤:1、根据URL获取得到网页的HTML源码2、根据图片的URL在源码中的格式,编写正则表达式3、从HTML中根据正则表达式解析出所有图片的URL,然后下载并保存示例代码如下:(爬取遥感图像)import reimport urllib.requestdef getHtml(url): page = urllib.request.urlopen(u...
2019-11-19 21:42:51
500
转载 递归;分治及动态规划的区别
本文介绍算法中易混淆的几个概念,分别是递归,分治与动态规划。很明显,题目中的分号表明递归与后两者是不同层次的概念。递归:我更倾向于递归是一种编程技巧,递归的逻辑简单,但是内存占用大(栈存储变量、操作等等);常见的递归问题如爬楼梯、汉诺塔、快排等等。分治策略:将原问题分解为若干个规模较小但类似于原问题的子问题(Divide),「递归」的求解这些子问题(Conquer),然后再合并这些子...
2019-09-29 16:11:12
1301
原创 Ubuntu 系统下安装 MySQL 并配置进行远程访问
参考博客:https://blog.csdn.net/weixx3/article/details/80782479https://www.cnblogs.com/opsprobe/p/9126864.html两篇文章结合起来看。
2019-08-28 16:08:14
100
原创 MySQL的学习————触发器(trigger)的使用介绍
原文链接:https://www.cnblogs.com/CraryPrimitiveMan/p/4206942.html仅为学习之便,非常感谢原作者的整理触发器MySQL包含对触发器的支持。触发器是一种与表操作有关的数据库对象,当触发器所在表上出现指定事件时,将调用该对象,即表的操作事件触发表上的触发器的执行。创建触发器在MySQL中,创建触发器语法如下:CREATE ...
2019-08-19 21:14:27
214
原创 MySQL数据库安装及常见问题处理
一、MySQL数据库安装安装包下载地址:链接:https://pan.baidu.com/share/init?surl=y9lqjjKYDlC9Tf8qJLAxyw提取码:hj1g下载后解压,一路next即可安装完成。二、常见问题处理: 无法连接MySQL服务器"127.0.0.1"出现这个问题是因为本地的MySQL服务器没有打开,只需使本地服务器运行即可。 ...
2019-07-29 14:13:39
328
原创 pytorch 安装(win10、anaconda环境下)
直接去pytorch官网https://pytorch.org/ ,根据自己的电脑配置选择对应的选项,选好之后,会自动生成适合你自己电脑的安装命令,如下所示:然后在自己的环境下运行这个命令即可。需要注意的几点:1、自己若要用虚拟环境,则需要先在anaconda里面创建一个虚拟环境,使用下面的命令:conda create --name pytorch python=3.6,这样就...
2019-07-10 08:59:47
159
原创 西瓜书课后题——第十二章(计算学习理论)
本章涉及的数学理论知识太多,大多是纯理论的公式推导,所以目前只是大体看了一遍,了解了一些基本的概念和知识,并没有深入地对每一个定理进行证明和推导。所以课后题参考这篇博客:https://blog.csdn.net/icefire_tyh/article/details/52270432日后有机会要用到的话会重新回过头来进行推导学习。...
2019-05-21 15:48:03
759
原创 西瓜书课后题——第十一章(特征选择与稀疏学习)
11.1 编程实现 Relief 算法,并在西瓜数据集上测试。Relief 是过滤式特征选择算法,根据设计的 “相关统计量” 来度量特征的重要性。该方法和后续的学习器无关,只根据数据集就可完成特征选择。相关的思想理论介绍见书P249-250代码实现如下:import pandas as pdimport numpy as npclass Relief: def read...
2019-05-17 17:23:56
4535
转载 Tensorflow 数据读取方式:Dataset API
本篇为转载博客,只为方便学习,若有侵权。请联系删除!附上原文链接:https://blog.csdn.net/kwame211/article/details/78579035再次感谢原博主的讲解分析和整理,非常详细易懂!Dataset API是TensorFlow 1.3版本中引入的一个新的模块,主要服务于数据读取,构建输入数据的pipeline。此前,在TensorFlo...
2019-05-13 16:50:26
244
原创 西瓜书课后题——第十章(降维与度量学习) ( KNN、PCA )
此处只记录编程题目10.1和10.6,其余题目请参考:https://blog.csdn.net/icefire_tyh/article/details/5224377310.1 KNN分类理论比较简单,书上也说的比较清晰,所以直接给出代码:import numpy as npimport pandas as pdimport heapqimport matplotlib.p...
2019-05-10 18:16:27
3172
原创 解决tensorboard可视化报错:OSError: [Errno 22] Invalid argument 和 在浏览器无法打开的问题
首先,在得到日志文件,运用tensorboard进行可视化时,在终端输入:tensorboard --logdir=日志保存地址可能会出现以下错误:OSError: [Errno 22] Invalid argument这个问题其实是tensorboard的源码中间有一个bug,我们需要修改其中一个文件 manager.py 的一条语句。具体请参见这篇博客:https://blog...
2019-05-08 14:47:30
1059
1
转载 深入理解 Batch Normalization 批标准化
转载自博客园:https://www.cnblogs.com/guoyaohua/p/8724433.html Batch Normalization作为最近一年来DL的重要成果,已经广泛被证明其有效性和重要性。虽然有些细节处理还解释不清其理论原因,但是实践证明好用才是真的好,别忘了DL从Hinton对深层网络做Pre-Train开始就是一个经验领先于理论分析的偏经验的一门学问...
2019-05-05 21:21:43
161
原创 西瓜书课后题——第九章(聚类)
本章因为课后题大部分都是证明和解答题,所以不再详细叙述,只是针对 9.4 题给出相关算法的实现。关于证明和简答题可以参考这篇博客:https://blog.csdn.net/icefire_tyh/article/details/522246769.4 k均值聚类实现,并在不同k值和初始向量情况下进行比较。算法完全按照图 9.2 给出的过程进行,数据集采用西瓜数据集4.0.相关...
2019-05-02 13:58:24
3632
1
原创 tensorflow中转置卷积 conv2d_transpose 的实现机理及特殊情况处理方式
想理解转置卷积的实现过程,首先应该深入理解一下卷积的实现过程,请参考我的另一篇文章:https://blog.csdn.net/qq_37691909/article/details/89487724接下来介绍一下转置卷积的情况。官方的函数原型如下:tf.nn.conv2d_transpose( value, filter, output_shape, s...
2019-04-24 15:02:45
1015
原创 tensorflow 中卷积 conv2d 的实现及特殊情况下的处理方式
一、先来介绍一下卷积操作conv2d的实现该函数的官方文档如下:tf.nn.conv2d( input, filter, strides, padding, use_cudnn_on_gpu=True, data_format='NHWC', dilations=[1, 1, 1, 1], name=None)其中,...
2019-04-24 11:50:56
913
原创 西瓜书课后题——第十六章(强化学习)
16.1 用于K-摇臂赌博机的UCB方法每次选择Q(k)+UC(k)最大的摇臂,其中Q(k)为摇臂k当前的平均奖赏,UC(k)为置信区间。例如其中n为已执行的总次数,nk为已执行摇臂k的次数。试比较UCB方法与ϵ-贪心法和Softmax方法的异同。相同点:三者都是用于单步强化学习任务的模型,都在尽可能最大化累积奖赏的同时,实现了 探索和利用 之间的权衡。不同点:ϵ-贪心法:基于一...
2019-04-20 18:48:09
1402
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人