自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

许野平的博客

程学设计杂谈和无头绪的读书笔记

原创 神经网络模型为什么要分层?可以不可以打破层次结构?

为什么神经网络模型设计成分层结构?能打破这种结构吗?例如下面这样一个结构,不存在循环链路,应该是一个可以执行的网络模型,但是其中没有清晰的分层结构。神经网络模型需要研究这种类型的模型吗?

2020-02-19 15:28:44

阅读数 19

评论数 0

原创 反向传播算必须基于神经网络模型吗?

1. 神经元计算模型的三种可能的形式 神经网络模型对应的代数计算式是由固定模式的,每个神经元都采用这样一个计算方式:若干个输入节点的首先线性组合成一个实数输出,然后再进行一个非线性变换,即下面这种形式: output=f(w1x1+w2x2+...+wnxn)(1)\tag1 output = f...

2020-02-18 14:25:16

阅读数 21

评论数 0

原创 几分钟弄明白 BP 反向传播算法

今天有朋友咨询我反向传播算法,我觉得不需要太复杂的推导,就可以解释清楚这个算法的原理,希望对大家有帮助。

2020-02-17 22:01:12

阅读数 26

评论数 0

原创 初识 Rust:Windows 下安装和 Hello World

1.下载安装程序,安装系统 官网: http://www.rust-lang.org 下载安装程序 rustup-init.exe,直接运行即可完成安装。 找了半天,也没在开始菜单和桌面找到系统的快捷菜单,后来在文档文件夹里面找到了这些程序,看样子所有的程序都是基于命令行的。 2.编写 Hell...

2020-02-12 14:54:52

阅读数 135

评论数 0

原创 QT 程序的 DLL 依赖项的自动搜索发布

很简单,创建一个空白的文件夹,把你的exe程序复制进去,例如要发布的程序是 c:\test\hello.exe 只需要在命令行窗口里键入以下命令: c:\hello>windeployqt hello.exe 接下来,会自动生成全部依赖的的dll和其他相关文件、文件夹。 ...

2020-02-11 12:53:22

阅读数 51

评论数 0

原创 QtTreePropertyBrowser 用法示例

创建 QtTreePropertyBrowser 实例 过程很简单。先创建 QDockWidget,再创建 QtTreePropertyBrowser,最后把 QtTreePropertyBrowser 对象放到 QDockWidget 对象中。 QDockWidget *dock =...

2020-02-04 00:12:28

阅读数 37

评论数 0

原创 C++声明整数的位数

可以在 C++ 代码中直接声明一个整形变量的位数,例如: int a:4; //变量 a 为四位整数。 a = 7; //a = 7; a++; //a = -8; C++功能太丰富了,用了一辈子都无法完全掌握,听说今年又扩展功能了。 ...

2020-02-01 13:06:13

阅读数 33

评论数 0

原创 C++声明对象时类名前面需要加上class关键词吗?

今天读开源代码,发现下面一段代码,弄得我一头雾水: class XXX { ... ... public: class QtDoublePropertyManager *doubleManager; //前面需要加上关键字 class 吗? class QtString...

2020-01-30 16:35:13

阅读数 30

评论数 0

原创 QT中的信号与槽

写了段信号、槽的实验程序,发现信号、槽的类声明必须在头文件中才能正确编译,因为QT的预处理程序只处理*.h文件。 main.h 源代码 #ifndef MAIN_H #define MAIN_H #include <QObject> #include <iostream> ...

2020-01-29 23:52:42

阅读数 19

评论数 0

原创 QT 中设置 dockWidget 停靠位置

在 UI 属性窗中,修改 dockWidgetArea 属性即可。

2020-01-03 14:34:44

阅读数 54

评论数 0

原创 QT 中设置 QWidget 的背景颜色

最简单的办法是在 UI 属性窗口中直接设定,方法如下: 第一步,点击 styleSheet 的设置按钮。 第二步,在编辑样式表中,选择添加颜色,并选择 background color。 第三步,选择喜欢的背景颜色。 ...

2020-01-03 14:12:08

阅读数 26

评论数 0

原创 MVP模式的一点思考:简化系统架构,而不是搞的更复杂

最近打算写一个“纯正”的 MVP 程序,结果发现越搞越复杂,发现很容易陷入 Presenter 滥用的陷阱。今天清理一下思路,写个小总结。 1. Presenter 必须访问 Model 一个合理的调用流程应该是 A-B-C-D,或者 A-B-C,或者A-B。也就是说,View 需要访问 ...

2019-12-30 16:22:36

阅读数 35

评论数 0

原创 Tensorflow 实战:一个简单的二分类模型

自己动手建一个二分类的网络模型,所有代码都是自己一个字母一个字母敲进去的。

2019-12-23 17:27:04

阅读数 26

评论数 0

原创 Tensorflow MNIST 手写体识别代码注释(4)

Tensorflow MNIST 手写体识别代码注释(3)tf.argmaxtf.equal() tf.argmax 测试模型定义如下: correct_prediction = tf.equal(tf.argmax(pred, 1), tf.argmax(y,1)) t...

2019-12-22 17:11:26

阅读数 17

评论数 0

原创 Tensorflow MNIST 手写体识别代码注释(3)

Tensorflow MNIST 手写体识别代码注释(3)tf.train.GradientDescentOptimizertf.global_variables_initializer()mnist.train.next_batch()sess.run再论 cost 定义 tf.train.Gr...

2019-12-22 15:24:16

阅读数 20

评论数 0

原创 损失函数浅析:分类模型和回归模型 (1)

只要不犯愚蠢的错误,损失函数总会驱使模型朝着提升识别精度的方向前进,似乎没必要把损失函数搞得太复杂。但是,仔细思考一下,发现其中还是有些门道的。关键在于,模型的最优解最终落在什么位置,这个和损失函数定义绝对有关系。

2019-12-21 16:17:38

阅读数 637

评论数 0

原创 Tensorflow MNIST 手写体识别代码注释(2)

Tensorflow MNIST 手写体识别代码注释(2)tf.random_normaltf.zeros神经网络模型定义tf.nn.softmax定义损失函数tf.reduce_mean 上次仔细研究了网络的节点和连接的定义。节点数据类型是 tf.Tensor,用函数 tf.placehold...

2019-12-21 14:29:28

阅读数 28

评论数 0

原创 Tensorflow MNIST 手写体识别代码注释(1)

import import tensorflow as tf 导入 Tensorflow 模块,并用 tf 做别名。 from tensorflow.examples.tutorials.mnist import input_data tensorflow.examples.tutorials...

2019-12-20 17:52:46

阅读数 21

评论数 0

原创 Tensorflow 使用 GPU 做 MINST 手写体识别

Tensorflow 的 CPU 版本安装很容易,但是 GPU 版安装后,不知什么原因就不能用了。这几天我查了些文章,分析原因可能是我不小心把显卡的驱动给升级了,造成版本不兼容。但这个说法我觉得也经不起推敲。于是我想重新安装 Tensorflow,但是发现以前用的联网安装不灵了,国外的数据源连不上...

2019-12-19 16:57:37

阅读数 36

评论数 0

原创 史上最简:深度学习通俗入门教程(1)——了解神经网络

用最简单的形式解释神经网络的工作原理,并进一步深入了解卷积神经网络及其应用。

2019-11-20 12:46:52

阅读数 49

评论数 0

原创 Lua 语言中神奇的 table

1. table 的不同语法形式 先看看下面代码: >mytable = {} >mytable[[100] = 123 >mytable["width"] = 500 >mytable.height = 800 >mytable.ad...

2019-11-11 13:48:17

阅读数 41

评论数 0

原创 lua 源代码初次编译

这把年纪了,感觉最近两年京写一些小儿科的东西,快不好意思写博客了。忍一忍吧,年龄大了,不写下来这些琐碎的细节实在记不住。下次再想用 Lua,就到这里复习复习。这辈子再拼最后一波,搞完我的程序,退休搞乐队去。 1. 官网下载源代码 lua很多年前用过,今天想再试一下,到官网下载了源代码。网址是:...

2019-11-09 15:48:55

阅读数 111

评论数 0

原创 Qt5 多国语言设置

以前开发软件的时候,被多国语言设置问题把我折磨疯了。学习Qt5的第一个任务就是把这个问题搞定,省得以后没完没了地手工搞这些东西。 首先我写了个英文的窗口,加入菜单,工具条。参见下图: 然后在工程文件 untitled.pro 中增加一行:TRANSLATIONS += cn...

2019-11-07 14:39:22

阅读数 134

评论数 0

原创 第一次用Qt

准备用C++写个小程序,朋友推荐Qt做界面,今天试了一下,安装、入门过程很简单。 1. Qt 官网 Qt的官网是:https://www.qt.io/。有文章推荐下面的地址下载相关安装包: 2. 常用的几个下载地址 所有Qt版本下载地址:http://download.qt.io/ar...

2019-11-06 17:35:37

阅读数 86

评论数 0

原创 TensorBoard 显示数据流图

本文通过一个简单例子,给出了初次使用 TensorBoard 的快捷方法。

2019-11-03 15:20:51

阅读数 51

评论数 0

原创 初识 gcc: MinGW

一直在用微软的编译器,今天因为用 Go 语言编译 DLL 的问题不得不安装了 gcc 的 Windows 版本,也就是 MinGW,感觉很简单。 首先去官网下载安装:https://sourceforge.net/projects/mingw-w64/ 然后写了个简单程序: //hello.c #...

2019-10-27 23:08:00

阅读数 199

评论数 0

原创 Golang 编译生成 DLL 文件

去年的时候还在发愁如何用 Go 语言编译 DLL 文件, 今年就已经完全实现了,谷歌这样做是非常明智的。 编译过程中需要 gcc 的支持,Windows 环境下的 gcc 系统是 MinGW,去官网下载即可。地址是: https://sourceforge.net/projects/mingw...

2019-10-27 23:00:20

阅读数 149

评论数 0

原创 数字证书为什么需要权威机构认证才安全?

原来以为RSA之类的公开密钥算法很容易实现安全通讯,最近仔细研究了一下才发现问题明不简单。 公钥传输风险 Alice 想给 Bob 发送一份加密消息,于是通过公开渠道索取 Bob 的公钥,并用其公钥加密信息,该加密信息必须用 Bob 的私钥才能解密。 如果在索取 Bob 公钥的过程中,Car...

2019-10-27 22:59:38

阅读数 56

评论数 0

原创 tensorflow的第一个练习:线性回归

代码和运行结果 找了个例子,把代码敲进去,先贴代码吧: import tensorflow as tf import numpy as np import matplotlib.pyplot as plt def moving_average(a, w = 10): if len(a) ...

2019-10-14 16:57:01

阅读数 23

评论数 0

原创 tensorflow 快速安装入门教程

经过几年的完善发展,tensorflow 安装已经非常简单。本文介绍 windows 环境下安装的关键步骤。 1. 安装 anaconda anaconda 是一个快速安装 python 环境的程序,到该程序官网下载安装即可。安装完毕后,在开始菜单里找到 anaconda prompt 或者 ...

2019-10-11 17:39:05

阅读数 40

评论数 0

原创 C++ 逗号运算符重载,blitz 库分析

blitz 演示程序有下面这样的代码。看到矩阵A、B的赋值语句的写法,我惊呆了。第一时间想到应该是用了逗号运算符重载。

2019-09-10 16:21:07

阅读数 59

评论数 0

原创 C++ 抽象类造成的内存泄漏

今天检查代码时发现一个因为使用抽象类引起的内存泄漏。相关代码简化如下: class AbstratcClass { //省略其他代码 virtual void do_something() = 0; } class ImpClass: public AbstractClass {...

2019-08-28 16:15:50

阅读数 84

评论数 0

原创 C++11中的 std::move 右值引用转换实现原理

std::move 到底做了什么工作,把本应该是左值引用的变量 x 硬生生改成了右值引用?

2019-08-18 16:55:24

阅读数 213

评论数 0

原创 C++ 左值引用、右值引用、复制构造函数、移动构造函数

C++为保持源代码优雅而不失高效率,提供了不少措施,其中右值引用、移动构造函数是一个非常重要的机制。C++ 不愧编程语言之王,java、C# 等后来者,实际上从她身上吸取了不少精华。 看下面代码: 1. 一个例子 #include <iostream> using namesp...

2019-08-13 15:27:12

阅读数 178

评论数 0

原创 C++:多线程内存管理的思考

用 C++ 写多线程算法,如果程序设计过程中完全不用 new、delete、malloc、free 等动态申请、释放内存,理论上讲,变量内存会完全分配在栈上。如果不用全局变量和指针引用,理论上讲,算法可以实现无锁设计。 但问题来了,如果算法用 OOP 方法设计,数据能保证是完全分配在栈上吗?

2019-08-07 16:55:33

阅读数 74

评论数 0

原创 golang 编译错误:evaluated but not used

执行下述代码: ... N := 234 N << 1 ... 显示下述错误信息: N << 1 evaluated but not used 原因是,N << 1 这个运算返回一个结果,但是没有赋给一个适当的变量。代码的正确写法是: ...

2019-08-04 10:12:32

阅读数 161

评论数 0

原创 C++ 的常量引用机制 const T& 与函数式编程

变量的值不允许改变,是函数式编程的重要特点。在这个前提下,函数式编程中只能以传值方式向函数传递参数。 因为变量的值不能改变,在函数式编程中,所谓的传值,实际上也是通过传递地址指针实现的。因为函数式编程语言不能修改变量,即使共享数据也不会出现副作用,而且,也保证立刻函数式编程具有较高的执行速度。著...

2019-08-03 11:46:14

阅读数 71

评论数 0

原创 C++ 面向对象体系(OOP)背后的哲学思想

用 Go 语言写了一些算法,被不伦不类的语法快把我折磨疯了。还是回归到 C++ 写算法吧。我觉得 C++ 的面向对象体系应该是所有语言中最科学的。这里简单列举若干特点,算是一个基本的总结。 C++ 引入OOP机制,其根本思路是,要让程序员利用 class 机制自行创建新数据类型。新的数据类型从形...

2019-08-01 18:45:52

阅读数 47

评论数 0

原创 LiteIDE 中GDB模式下调试 Golang 程序单步执行不显示当前行的解决办法

单步执行程序时,跟踪到 Go 语言自带的库文件时能显示当前行,但是运行到我自己写的代码时,就无法显示当前行。 研究了半天,发现原因很简单,工作路径名,也就是 gopath 路径中,不能有汉字,把工作目录名称全部改成英文,问题立即解决。 ...

2019-07-17 10:44:26

阅读数 63

评论数 0

转载 使用delve调试Golang程序

使用delve调试Golang程序技巧 Google官方为Golang的调试例子默认使用了gdb,然而, 使用gdb调试go程序会遇到goroutine的各类问题, 因为gdb不懂go,因此,这里使用delve黑科技来进行Golang的程序调试。纯命令行调试方法在网上很容易搜索到,本文主要以Li...

2019-07-16 22:37:06

阅读数 119

评论数 0

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