- 博客(129)
- 资源 (4)
- 收藏
- 关注
原创 【C++】MySQL8初始化疑难解答
MySQL是著名的开源关系数据库,在网站建设、移动APP服务、云计算、科学管理领域都有重要用途。无论以后从事什么方向的IT工作,都要对MySQL有一定的了解。MySQL最新版本号是8,官网提供了绿色包和安装包下载。现在一般都会选择绿色包下载,避免污染系统。但是绿色版MySQL的启动容易遇到问题。现记录一下:找不到VCRUNTIME14_1这里写的是14_1,但是对应VC++2019。安装VC...
2020-04-28 22:08:01
446
原创 【C++】Boost.Asio+Serialization 建立RPC demo(服务端)
接上篇blog,RPC服务端主要设计两个主要内容:调用函数进行统一绑定。调用函数参数展开。统一接口的调用。这里我不考虑类成员函数绑定,远程调用不好设计。接收数据服务端能接收的数据存放在char* readBuffer_里面,Boost.Serialization的binary_oarchive对象来恢复传递的函数名字符串、函数参数。服务端根据传输的函数名来调用相应的函数并输入函数参...
2020-03-31 22:33:40
1033
原创 【C++】Boost.Asio+Serialization 建立RPC demo(客户端)
RPC服务(Remote Procedure Call),可以从客户端要求服务端进行相关业务,从服务端获取相应的答案,调用方法类似普通的函数调用。RPC在分布式系统中的系统环境建设和应用程序设计中有着广泛的应用,比如:分布式操作系统的进程间通讯;构造分布式计算的软件环境;远程数据库服务等。这里尝试用Boost.Asio和Serialization搭建一个RPC demo,编译平台是VS 2017...
2020-03-31 17:14:17
1346
原创 【C++】Boost.Serialization疑难解答:缓冲、动态数组等
工作中可能面临如下需求:将结构化数据,比如类,通过网络传输到其他地方。高成本计算得到的数据,要临时保存到磁盘中,希望下一次读取进来直接就是格式化好的数据;而不再需要一个个地读取进来,在内存中重建构建数据结构。我们可以用序列化/反序列化来完成上述任务。序列化是指,将用复杂数据结构构建的数据,变为字符串或者二进制流;反序列化则是相反过程,直接从字符串或者二进制流中完全恢复内存现场。目前常用...
2020-03-30 11:38:58
1409
原创 【C++】内外网连接原理与ASIO 代理
参考资料:《Boost Asio C++网络编程》第五章学会网络编程之后,理所当然会有这样的想法:在单位电脑上部署自己写的服务段软件,在家里电脑上部署客户端,从而远程办公。但是实际操作下来可以发现,两台电脑上的ip地址,根本不能建立socket直连,这是为什么呢。内外网连接规则对于普通网络用户,电脑入网都分配的是内网IP。尽管IPv6已经出来多年,目前互联网公网IP普遍还在IPv4阶段,可利...
2020-03-28 16:53:13
957
原创 【C++】BOOST ASIO 异步多线程服务端代码分析
参考资料:《Boost Asio C++网络编程》第五章异步多线程服务端是可实际运用服务端软件的最低要求,其用于解决如下基本问题:并发服务中,有用户连接需要服务端执行耗时操作,同时不影响其他用户连接工作。一个显然的想法是,为每个耗时用户连接开启一个工作线程进行耗时操作,在线程工作时不阻塞主线程,线程结束后执行异步回调函数。如果我们直接在工作线程末尾调用回调函数,那么回调函数会在工作线程中而不是...
2020-03-28 00:58:40
765
原创 【C++】BOOST ASIO 异步服务端代码分析
参考资料:《Boost Asio C++网络编程》第四章这里将对asio库编写的异步服务端进行解读。异步服务端复杂很多。同步服务端简单来说就是轮询,一般用于业务测试。主函数启动配置环境与客户端一致。主函数:io_service service;ip::tcp::acceptor acceptor(service, ip::tcp::endpoint(ip::tcp::v4(), 8001...
2020-03-26 23:08:49
538
原创 【C++】BOOST ASIO 异步客户端代码分析
参考资料:《Boost Asio C++网络编程》第四章这里将对asio库编写的异步客户端进行解读。异步客户端比同步客户端更复杂。同步客户端相对简单,实用性不大,一般用于业务测试,基本就是一条线的逻辑代码。环境设置asio客户端项目仅需包含boost.asio头文件,无需导入lib文件:#include <boost/thread.hpp>#include <boost...
2020-03-26 19:50:15
1043
原创 【C++】Boost开发指南阅读感想
我找了半天的windows下的markdown编辑器,最后发现vs code就是最好的万能编辑器!其他win编辑器的短板:公式都能打。Boost是C++的准标准库,极大丰富了C++的功能,其中有一些部分会在以后纳入C++标准库,学了有好处。之前用Qt5作为项目框架,比较了下qt5和boost,发现qt5某种意义上也是一个“boost”,提供了C++很多扩展功能,所以这里也放进来比较一下。第1...
2020-03-19 16:07:30
247
原创 【C++】网络编程小总结
这几天抽空看了boost.asio,对网络编程有个大概的了解,记录如下:网络库C++常用编写网络项目的库有ACE,boost.asio,libev,libevent,libuv,POCO,cpp-netlibe,等等。按照大众认知,ACE是很重量、复杂、难用的库,超大型项目可能要用,普通的应该没必要。轻型的、要造很多额外轮子就是用libev,libevent等几个作为网络项目基础,这几个其实是...
2020-03-18 17:55:54
342
原创 【机器学习】Torchvision生成拼接图像
Pytorch组件torchvision可以将 N×D×H×WN \times D \times H \times WN×D×H×W生成 一块拼接图像,其API描述如下:torchvision.utils.make_grid(tensor, nrow=8, padding=2, normalize=False, range=None, scale_each=False, pad_value=0)...
2020-02-04 22:46:09
1915
原创 【机器学习】Pytorch多GPU训练的CUDA错误
最近用pytorch进行多GPU训练,遇到一个问题,现记录一下问题详情和解决方法。我用windows pytorch跑的,单个网络占据约4G显存,显卡约11G显存,一个显卡只能跑两个sample。当我batch_size设置为2,GPU设置为两块时,每个GPU显存绰绰有余,跑起来没啥问题。当batch_size设置为4,每个GPU跑两个sample,显存占据约8G,时不时遇到一个错误然后就退出了...
2019-03-30 11:07:47
2565
6
原创 【图像处理】基于贝叶斯的Lucy-Richardson图像复原算法
研究空间域滤波方法是图像处理领域的重要内容。相比频域滤波,空间域滤波直接在图像空间上进行操作,除了传统的滤波外,还能加入各种直观的空间域操作,可扩展性和可理解性都比较强。在图像复原领域,当噪声较为复杂时,频域滤波方法因为难以计算得到噪声的频域模型,不能合理地去除噪声干扰,空间域方法就容易多了,因此空间域滤波方法占有很重要的地位。图像复原问题的重要步骤是建立合理的图像退化模型。假设退化图像,即观测......
2019-03-12 12:30:21
15343
15
转载 [转]通俗理解卡尔曼滤波及其算法实现(实例解析)
1.简介(Brief Introduction)在学习卡尔曼滤波器之前,首先看看为什么叫“卡尔曼”。跟其他著名的理论(例如傅立叶变换,泰勒级数等等)一样,卡尔曼也是一个人的名字,而跟他们不同的是,他是个现代人!卡尔曼全名Rudolf Emil Kalman,匈牙利数学家,1930年出生于匈牙利首都...
2018-05-07 10:41:54
750
原创 【机器学习】C++与OpenCV、Tensorflow-python联合调用
上一篇我介绍了C++调用Python的入门方法。这一篇我讲述C++与OpenCV、Tensorflow-python联合调用的一次成功的实验过程。 C++通过python调用tensorflow,比调用C++版本的tensorflow的优势在于:tensorflow环境依赖python环境,python环境几乎是一键傻瓜式操作,各种库依赖的问题,比直接使用tensorflow-C++少得...
2018-04-20 21:43:27
4228
1
原创 【机器学习】C++调用Python3教程
背景 实际项目中我用的都是C++语言,因为涉及到高性能计算,所以其他听起来牛逼的语言只能用来打下手。现在遇到的一个项目,其深度学习模块是用python语言编写的,现在很多深度学习库都提供了python支持,但是很少有C++支持,就算有C++支持,在windows上编译也有一大堆问题(你说普通人会用Linux?)。幸好python是所谓的胶水语言,能够和C++兼容工作,所以就着手试验C++调用...
2018-04-20 13:35:54
3197
1
原创 【图像处理】HDF5 C++编程简介
HDF5是一种科学数据格式,其特点是可以将不同类型的数据集整合保存到一个文件,并分别打上标签、注释。相比旧版的HDF格式,HDF5能支持大于4GB的文件读写;HDF5在数据集的基础上增加包Group,类似文件夹。这使得HDF5文件内部像普通的文件系统一样,便于数据的整合管理。
2017-12-27 20:48:42
7842
原创 【机器学习】高斯分布为什么普遍和常用?
似然函数到高斯分布为了得到精确值,我们需要进行多次测量,测量值大部分对称分布在真实值两侧附近。设测量期望为θ\theta,误差为ei=xi−θe_i=x_i-\theta,期望为0,误差分布满足什么规律呢?
2017-12-26 20:41:29
20530
3
原创 【机器学习】Tensorflow概率编程:线性混合模型
线性模型是我们最常见到的、最理想的数学模型,基本的线性模型是数据科学入门的基本案例。然而现实生活中的线性问题,很大几率不适用于基本的线性模型,需要使用线性混合模型来描述。Tensorflow edward提供对这类问题的解决方案。
2017-07-06 17:38:49
3237
原创 【机器学习】Tensorflow概率编程: 贝叶斯线性回归、变分贝叶斯与黑盒变分推断
我们首先看看Tensorflow概率编程最简单的实例:贝叶斯线性回归。 以及背后的数学知识:变分贝叶斯和黑盒推断。
2017-06-30 23:46:37
7099
1
原创 【C++】More C++ 模板推导
进入C++11时代,大部分流行的库都支持了C++11的新特性。C++11的新特性虽然有时候被诟病为语法糖,但是确实对开发很有助力,甚至有时候跟脚本语言的简洁度有的一拼了。其中自动模板推导是C++11的惊艳功能之一,如果仅仅知道auto和decltype是不够的。以下笔记均以vs2013为准。
2017-06-29 14:08:31
704
原创 【机器学习】Tensorflow:概率编程初步印象
谷歌对Tensorflow的定位是机器学习库而不仅仅是深度学习库。随着Edward项目的开展,Tensorflow涉足了概率编程领域,与stan、pymc展开了竞争,大大扩展了应用范围。现在来看看基于Tensorflow的概率编程的一些初步知识笔记。
2017-06-21 23:50:30
1868
原创 【高性能】大型分布式项目笔记
人工智能和大数据分析是当代能创造大量价值的学科。人工智能和大数据分析都离不开大型分布式项目。大型项目里面的技术非常多,相关书籍瀚如烟海,不过原理、原则和核心思想都是相通的,学习这些知识对于应用人工智能和大数据分析,启发新思想有帮助。简单记录一下学习的一些重要思想和原则。
2017-06-19 14:01:36
921
原创 【机器学习】Bregman迭代算法以及证明
Bregman系列算法是近几年在图像处理和压缩感知领域异军突起的算法,能够更好地从现有数据中还原真实目标结果。
2017-05-06 01:14:40
7759
3
原创 【图像处理】Tensorflow:简易超分辨重建与坑
超分辨重建是图像复原领域的一大热点,能在硬件有限的情况下最大还原原始场景的信号,在天文探索、显微成像等领域有重要作用。成像设备对物体成像时,由于距离较远,成像会模糊,可以类比多尺度高斯滤波;受限于成像机能,成像像素达不到最理想条件,可类比为对原始像进行一个下采样。超分辨重建就是要在这种条件下复原原始图像。
2017-03-31 10:32:55
8429
原创 【机器学习】Tensorflow:tSNE数据非线性降维
深度学习巨头之一的Hinton大神在数据降维领域有一篇经典论文Visualizing Data using t-SNE。该方法是流形(非线性)数据降维的经典,从发表至今鲜有新的降维方法能全面超越。该方法缺点是计算复杂度大,一般推荐先线性降维然后再用tSNE降维。python sklearn有相应的实现。我现在用Tensorflow实现这个算法。
2017-03-01 00:57:37
16891
原创 【机器学习】Tensorflow:理解和实现快速风格化图像fast neural style
Neural Style开辟了计算机与艺术的道路,可以将照片风格化为名家大师的画风。然而这种方法即使使用GPU也要花上几十分钟。Fast Neural Style则启用另外一种思路来快速构建风格化图像,在笔记本CPU上十几秒就可以风格化一张图片。我们来看看这是什么原理。
2017-02-23 11:20:18
16569
6
原创 【机器学习】tensorflow:HMM隐状态链的一种最优化求解方法
隐马尔科夫模型(HMM)有很多讲解,这里我推荐这篇文章:一文搞懂HMM(隐马尔可夫模型)。HMM有三种核心问题:1、给定隐状态链、转移矩阵、发射矩阵,求状态链发生概率2、给定状态链求转移矩阵和发射矩阵3、给定状态链、转移矩阵、发射矩阵,求隐状态链。三类问题分别对应前向-后向算法、最大熵算法、维特比算法。鉴于第三类问题本质上是优化问题,所以我尝试用tensorflow进行求解。
2017-02-21 10:27:34
6787
原创 【机器学习】tensorflow: GPU求解带核函数的SVM二分类支持向量机
SVM本身是一个最优化问题,因此理所当然可以用简单的最优化方法来求解,比如SGD。2007年pegasos就发表了一篇文章讲述简单的求解SVM最优化的问题。其求解形式简单,但是并没有解决核函数计算量巨大的问题。这里给出了一个tensorflow的带核函数的SVM的解法,使用GPU加速,并且支持在线学习。
2017-02-16 10:11:50
10666
5
原创 【机器学习】tensorflow: 稀疏自编码
21世纪之后,数学家证明了我们获取的很多数据,可以分解为空间中少数几个基的组合,且组合系数很多为0;亦或者说,大部分数据的主要内容可以由少数几个空间基组成。这就是数据的稀疏特征,是压缩感知的基础。基于这个原理诞生了数据压缩方法,检测方法。这些方法很多都基于最优化理论,在大数据处理上,相比传统的方法,比如PCA,在计算复杂度上有很大的提升。稀疏自编码是其中一种数据压缩方法。 稀疏编码的公式为:arg
2017-02-14 11:01:24
3605
原创 【机器学习】tensorflow:图像空间域逆滤波初步
相比上两篇文章的逆滤波解法,tensorflow的最优化解法更加高效、简明,往往构建出滤波最优化公式就可以让tensorflow自动最优化,逆向得到目标逆滤波图像。tensorflow逆滤波的实现原理可以参考【图像处理】时域最小二乘逆滤波的最优化快速解法with tf.device('/gpu:0'): initial = tf.random_normal([1,252,252,1]) *
2017-02-14 09:38:37
3912
原创 【图像处理】时域最小二乘逆滤波的最优化快速解法
上一篇文章,我的空间域最小二乘逆滤波的时间、空间复杂度都非常高。其中求逆矩阵是消耗巨大的一步,这里用迭代优化解法展示了如何不用求逆矩阵来求解最小二乘逆滤波。 首先卷积图像的生成表示为AXravel+Nravel=BravelAX_{ravel}+N_{ravel}=B_{ravel},我们将问题转化为一个简单的带正则化的优化问题J(Xravel)=argmin12(AXravel−Bravel)2
2017-02-09 19:51:25
2017
原创 【图像处理】时域最小二乘逆滤波
空间域上,可以和频域一样进行卷积逆滤波操作。其方法是展开图像为一列,构建卷积模板矩阵,这样卷积操作就变成了矩阵乘法。我们可以用最小二乘法来,已知卷积图像和卷积模板来求出原始图像。空间域最小二乘逆滤波是病态问题,缺点是卷积矩阵非常稀疏和巨大,模非常小,一般需要进行约束。
2017-02-09 11:24:47
1878
原创 【机器学习】动手写一个全连接神经网络(三):分类
我们来用python写一个没有正则化的分类神经网络。 传统的分类方法有聚类,LR逻辑回归,传统SVM,LSSVM等。其中LR和svm都是二分类器,可以将多个LR或者svm组合起来,做成多分类器。 多分类神经网络使用softmax+cross entropy组成最终的多分类代价函数J。为什么要用这个代价函数,可能需要广义线性模型的知识。简单来说就是最大化分类函数的熵。
2017-01-12 10:46:34
2353
原创 【机器学习】线性回归
假设我们有许多样本数据{x(i),y(i)},其中x(i)是第i个样本变量,y(i)是第i个变量的类别,对于每个样本变量都有许多特征feature(x)=X=x1,x2,…xnfeature(x)=X={x_1,x_2,…x_n},现在我们建立判别函数hθ(x)=θ1x1+…θnxnh_{\theta}(x)=\theta_1x_1+…\theta_nx_n,线性回归的目标是找到判别函数的最佳系数,
2017-01-11 00:51:52
656
原创 【机器学习】动手写一个全连接神经网络(一)
反向传播神经网络推导中给出了复杂的BP公式。从头看这篇多年的博客的公式,我都有点被绕晕了。现在在这里我可以从矩阵计算的角度去演示一个全连接神经网络的计算过程,这样更简洁明了。
2016-12-21 22:23:21
8757
gdb7.1 for windows
2012-08-10
欧拉系统虚拟机安装问题
2023-05-05
基于C++怎么使用neo4j的http api?
2023-05-05
如何用VTK获取视锥八个顶点?
2023-03-18
slurm 任务被kill而没有报错信息,怎么办?
2022-10-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人