自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wohu1104的专栏

本博客为个人工作、学习和生活点滴记录

  • 博客(27)
  • 资源 (10)
  • 收藏
  • 关注

原创 golang 同一个包中函数互相调用报错 undefined 以及在 VSCode 中配置右键执行整个包文件

1. 代码结构demo 文件夹下有两个文件,分别为 hello.go 和 main.go ,结构如下:wohu@wohu:~/GoCode/src$ tree demo/demo/├── hello.go└── main.go0 directories, 2 fileswohu@wohu:~/GoCode/src$ hello.go 文件内容为:package mainimport "fmt"func hello() { fmt.Println("hello, world"

2020-06-29 22:26:24 13728 7

原创 机器学习入门(13)— Affine 仿射层、Softmax 归一化指数函数层实现

1. 一维 Affine 仿射层我们回顾下之前为了计算加权信号的总和,使用了矩阵的乘积运算 NumPy 中是 np.dot() , 参照代码如下:In [7]: X = np.random.rand(2)In [8]: W = np.random.rand(2,3)In [9]: B = np.random.rand(3)In [10]: XOut[10]: array([0.4789532 , 0.09922952])In [11]: WOut[11]: array([[0.5

2020-06-28 22:50:38 1775

原创 机器学习入门(12)— 激活函数层 ReLU、Sigmoid 层的实现

1. ReLU 函数层激活函数 ReLU(Rectified Linear Unit)由下式(5.7)表示。通过式(5.7),可以求出 y 关于 x 的导数,如式(5.8)所示。在式(5.8)中,如果正向传播时的输入 x 大于0,则反向传播会将上游的值原封不动地传给下游。反过来,如果正向传播时的 x 小于等于0,则反向传播中传给下游的信号将停在此处。用计算图表示的话,如图5-18 所示。在神经网络的层的实现中,一般假定 forward() 和 backward() 的参数是 NumPy 数组。

2020-06-27 22:40:18 5036

原创 机器学习入门(11)— 反向传播的加法节点、乘法节点、加法层代码实现、乘法层代码实现

1. 加法节点

2020-06-26 23:06:49 2315

原创 机器学习入门(10)— 浅显易懂的计算图、链式法则讲解

1. 计算图概念计算图将计算过程用图形表示出来。这里说的图形是数据结构图,通过多个节点和边表示(连接节点的直线称为“边”)。2. 计算图求解问题 1:小明在超市买了 2 个 100 日元一个的苹果,消费税是 10%,请计算支付金额。计算图通过节点和箭头表示计算过程。节点用○表示,○中是计算的内容。将计算的中间结果写在箭头的上方,表示各个节点的计算结果从左向右传递。用计算图解问题1,求解过程如图5-1 所示。虽然图 5-1 中把“× 2”“× 1.1”等作为一个运算整体用○括起来了,不过只用○表示

2020-06-25 23:21:40 5164 2

原创 机器学习入门(09)— 偏导数、梯度概念、梯度下降法理论和实现

1. 偏导数概念对于式 4-6 而言式(4.6)有两个变量,求导数时有必要区分对哪个变量求导数,即对 x0 和 x1 两个变量中的哪一个求导数。另外,我们把这里讨论的有多个变量的函数的导数称为偏导数。用数学式表示的话,可以写成2. 梯度概念当一起计算 x0 和 x1 的偏导数。比如,我们来考虑求 x0 = 3, x1 = 4 时 (x0, x1) 的偏导数像这样的由全部变量的偏导数汇总而成的向量称为梯度(gradient)。对 式(4.6) 求导的的代码如下所示import nump

2020-06-24 23:08:49 1717

原创 Ubuntu 18 snap 占用 100%,卸载 snap

1. 卸载 snapUbuntu 18.04 安装之后输入 df -h 之后有很多 snap 占用 100% ,如下所示。wohu@ubuntu1804:~$ df -hFilesystem Size Used Avail Use% Mounted onudev 2724552 0 2724552 0% /devtmpfs 550960 1896 549064 1% /run/dev/sd

2020-06-23 22:14:59 13435 4

原创 机器学习入门(08)— 损失函数作用和分类(均方误差、交叉熵误差)

神经网络的学习中的“学习”是指从训练数据中自动获取最优权重参数的过程。为了使神经网络能进行学习,将导入损失函数这一指标。而学习的目的就是以该损失函数为基准,找出能使它的值达到最小的权重参数。为了找出尽可能小的损失函数的值,我们将介绍利用函数斜率的梯度法。神经网络的学习通过某个指标表示现在的状态。然后,以这个指标为基准,寻找最优权重参数。神经网络的学习中所用的指标称为损失函数(loss function)。这个损失函数可以使用任意函数,但一般用均方误差和交叉熵误差等。损失函数是表示神经网络性能的“恶

2020-06-22 23:05:49 2850

原创 机器学习入门(07)— MNIST 数据集手写数字的识别

我们来进行手写数字图像的分类。假设学习已经全部结束,我们使用学习到的参数,先实现神经网络的“推理处理”。这个推理处理也称为神经网络的前向传播(forward propagation)。和求解机器学习问题的步骤(分成学习和推理两个阶段进行)一样,使用神经网络解决问题时,也需要首先使用训练数据(学习数据)进行权重参数的学习;进行推理时,使用刚才学习到的参数,对输入数据进行分类。...

2020-06-20 23:27:33 1920

原创 机器学习入门(06)— 输出层多元分类、softmax 归一化指数函数以及输出层的神经元数量

输出层所用的激活函数,要根据求解问题的性质决定。一般地,回归问题可以使用恒等函数;二元分类问题可以使用 sigmoid 函数;多元分类问题可以使用 softmax 函数;

2020-06-19 23:18:06 4176

原创 机器学习入门(05)— 使用 NumPy 实现 3 层简单神经网络

我们以图 3-15 的3 层神经网络为对象,实现从输入到输出的(前向)处理。在代码实现方面,使用上一节介绍的 NumPy 多维数组。1. 符号定义2. 各层之间信号传递从输入层到第 1 层的 第1 个神经元的信号传递过程,如图 3-17 所示。图 3-17 中增加了表示偏置的神经元 “1”。请注意,偏置的右下角的索引号只有一个。这是因为前一层的偏置神经元(神经元“1”)只有一个。用代码实现上述过程:In [1]: import numpy as npIn [2]: X = np.a

2020-06-18 23:33:23 684

原创 机器学习入门(04)— 神经网络多维数组 NumPy 相乘运算

1. 多维数组用 NumPy 构建多维数组代码示例如下:In [1]: import numpy as npIn [2]: A = np.array([1,2,3,4])In [3]: AOut[3]: array([1, 2, 3, 4])In [4]: np.ndim(A)Out[4]: 1In [5]: A.shapeOut[5]: (4,)In [6]: A.shape[0]Out[6]: 4In [7]: 从以上可以看出:数组的维数可以通过 np.ndi

2020-06-17 23:01:27 2570

原创 机器学习入门(03)— 激活函数分类(阶跃函数和 sigmoid 函数的理论、实现、显示以及区别、非线性函数、ReLU 函数、tanh 函数)

1. 阶跃函数1.1 理论式(3.3)表示的激活函数以阈值为界,一旦输入超过阈值,就切换输出。这样的函数称为“阶跃函数”因此,可以说感知机中使用了阶跃函数作为激活函数。也就是说,在激活函数的众多候选函数中,感知机使用了阶跃函数。那么,如果感知机使用其他函数作为激活函数的话会怎么样呢?实际上,如果将激活函数从阶跃函数换成其他函数,就可以进入神经网络的世界了。1.2 实现阶跃函数如式(3.3)所示,当输入超过0 时,输出1,否则输出0。代码实现如下:def step_function(x):

2020-06-16 23:27:03 5522

原创 机器学习入门(02)— 由感知机到神经网络的过渡进化,激活函数在神经网络中的作用

1. 神经网络示例用图来表示神经网络的话,如图3-1 所示。我们把最左边的一列称为输入层,最右边的一列称为输出层,中间的一列称为中间层。中间层有时也称为隐藏层。“隐藏”一词的意思是,隐藏层的神经元(和输入层、输出层不同)肉眼看不见。注意:图 3-1 中的网络一共由 3 层神经元构成,但实质上只有 2 层神经元有权重,因此将其称为“2 层网络”。请注意,有的书也会根据构成网络的层数,把图 3-1 的网络称为“3 层网络”。本书将根据实质上拥有权重的层数(输入层、隐藏层、输出层的总数减去 1 后的数量)来

2020-06-15 23:18:29 638

原创 机器学习入门(01)— 感知机概念、实现、局限性以及多层感知机

机器学习(1)— 感知机概念、实现、局限性以及多层感知机1. 感知机概念下图是一个接收两个输入信号的感知机的例子。 x1 、 x2  是输入信号, y  是输出信号, w1 、 w2  是权重( w 是 weight  的首字母)。图中的 ○  称为“神经元”或者“节点”。输入信号被送往神经元时,会被分别乘以固定的权重( w1*x1 、 w2*x2 )。神经元会计算传送过来的信号的总和,只有当这个总和超过

2020-06-14 22:27:31 1853

原创 Go 学习笔记(53)— Go 标准库之 path(判断绝对路径、拆分目录和文件、组合路径、返回路径目录、获取路径最后文件名、获取文件扩展名、路径匹配规则)

1. 概述说明import "path"path 实现了对斜杠分隔的路径的实用操作函数。2. 主要函数2.1 func IsAbsfunc IsAbs(path string) boolIsAbs 返回路径是否是一个绝对路径。2.2 func Splitfunc Split(path string) (dir, file string)Split 函数将路径从最后一个斜杠后面位置分隔为两个部分( dir 和 file )并返回。如果路径中没有斜杠,函数返回值 dir 会设为空字符串

2020-06-13 23:23:34 5264

原创 Go 学习笔记(52)— Go 标准库之 path/filepath(判断绝对路径、拆分目录和文件、组合路径、返回路径目录、获取路径最后文件名、获取文件扩展名、路径匹配规则、递归遍历目录)

1. 概述说明import "path/filepath"filepath 包实现了兼容各操作系统的文件路径的实用操作函数。2. 主要函数2.1 func IsAbsfunc IsAbs(path string) boolIsAbs 返回路径是否是一个绝对路径。2.2 func Absfunc Abs(path string) (string, error)Abs 函数返回 path 代表的绝对路径,如果 path 不是绝对路径,会加入当前工作目录以使之成为绝对路径。因为硬链接的存在

2020-06-12 22:25:44 4572

原创 Go 学习笔记(51)— Go 标准库之 strings(字符串比较、字符串前后缀、字符串统计、字符串索引、字符串包含、字符串转换、字符串复制、字符串替换、字符串去除、字符串分割和连接)

1. 概述说明import "strings"strings 包实现了用于操作字符的简单函数。 strings 包与 bytes 包中的函数用法基本一样。2. 主要函数2.1 字符串比较func Compare(a, b string) int // 如果a==b返回0;如果a<b返回-1;否则返回+1func EqualFold(s, t string) bool // 判断两个utf-8编码字符串(将unicode大写、小写、标题三种格式字符视为相同)是否相同。2.2 字符串

2020-06-11 21:19:58 623

原创 Go 学习笔记(50)— Go 标准库之 net/url(查询转义、查询参数增/删/改/查、解析URL)

1. URL 概述import "net/url"url 包解析 URL 并实现了查询的转码。URL 提供了一种定位因特网上任意资源的手段,但这些资源是可以通过各种不同的方案(比如 HTTP 、 FTP 、 SMTP )来访问,因此 URL 语法会随着方案的不同而不同。完整的 URL 格式为:<schema>://<user>:<password>@<host>:<port>/<path>:<params>?&l

2020-06-10 22:26:38 4869

原创 Go 学习笔记(49)— Go 标准库之 io/ioutil(读写文件、获取目录下的文件和子目录、创建临时目录和文件)

1. 简要概述import "io/ioutil"包 io/ioutil 实现一些 I/O 实用程序函数。2. 相关函数2.1 func ReadAllfunc ReadAll(r io.Reader) ([]byte, error)ReadAll 从 r 读取数据直到 EOF 或遇到 error ,返回读取的数据和遇到的错误。成功的调用返回的 err 为 nil 而非 EOF 。因为本函数定义为读取 r 直到 EOF ,它不会将读取返回的 EOF 视为应报告的错误。2.2 func Re

2020-06-09 22:22:35 3482

原创 Go 学习笔记(48)— Go 标准库之 time (获取时/分/秒的单位值、标准时间和Unix时间转换、字符串时间和Time类型转换、时区转换、时间的加减/休眠)

1. 概要说明import "time"time 包提供了时间的显示和测量用的函数。日历的计算采用的是公历。Go 提供以下几种时间类型:时间点 Time时间段 Duration时区 LocationTicker定时器 Timer2. Time 类型type Time struct { // 内含隐藏或非导出字段}Time 代表一个纳秒精度的时间点。程序中应使用 Time 类型值来保存和传递时间,而不能用指针。就是说,表示时间的变量和字段,应为 time.Time

2020-06-08 21:32:12 5540

原创 Go 学习笔记(47)— Go 标准库之 strconv(string/int 互相转换、Parse 字符串转换为指定类型、Format 指定类型格式化为字符串)

参考: http://c.biancheng.net/view/5112.html在实际开发中我们往往需要对一些常用的数据类型进行转换,如 string 、 int 、 int64 、 float 等数据类型之间的转换, Go 语言中的 strconv 包为我们提供了字符串和基本数据类型之间的转换功能。strconv 包中常用的函数包括 Atoi() 、 Itia() 、 parse 系列函数、 format 系列函数、 append 系列函数等,下面就来分别介绍一下。1. stri.

2020-06-06 07:28:12 1776

原创 Go 学习笔记(46)— Go 标准库之 fmt(输入/输出格式化参数、Printf/Fprintf/Sprintf区别、Println/Fprintln/Sprintln 区别)

1. 概述import "fmt"fmt 包实现了类似 C 语言 printf 和 scanf 的格式化 I/O 。格式化动作( verb )源自 C 语言但更简单。2. Printing 格式化2.1 通用格式格式化标记格式化含义%v值的默认格式表示%+v类似%v,但输出结构体时会添加字段名%#v值的类型的Go语法表示%%百分号代码示例:package mainimport "fmt"type Person struct { Na

2020-06-05 22:18:12 4280

原创 Go 学习笔记(45)— Go 标准库之 flag(命令行参数解析)

1. 参数解析说明import "flag"flag 包实现了命令行参数的解析。每个参数认为一条记录,根据实际进行定义,到一个 set 集合。每条都有各自的状态参数。使用 flag 的正常流程为:通过 flag.String() , flag.Bool() , flag.Int() 等函数来定义命令行中需要使用的参数;在定义完 flag 命令行参数后,通过调用 flag.Parse() 来进行对命令行参数的解析;获取 flag.String() ,flag.Bool() , flag.Int

2020-06-04 22:27:49 2340

原创 Go 学习笔记(44)— Go 标准库之 os(获取文件状态、获取/修改文件权限、创建、删除目录和文件、获取进程ID、设置获取环境变量)

1. 概述os 包提供了操作系统函数的不依赖平台的接口。失败的调用会返回错误值而非错误码。通常错误值里包含更多信息。例如,如果某个使用一个文件名的调用(如Open、Stat)失败了,打印错误时会包含该文件名,错误类型将为 *PathError ,其内部可以解包获得更多信息。type PathError struct { Op string Path string Err error}PathError 记录一个错误,以及导致错误的路径。func (e *PathEr

2020-06-03 22:33:47 4598 1

原创 Go 学习笔记(43)— Go 标准库之 os/exec(执行外部命令、非阻塞等待、阻塞等待、命令输出)

1. 概述golang 下的 os/exec 包执行外部命令包执行外部命令。它包装了 os.StartProcess 函数以便更容易的修正输入和输出,使用管道连接I/O,以及作其它的一些调整。与 C 语言或者其他语言中的“系统”库调用不同, os/exec 包并不调用系统 shell ,也不展开任何 glob (正则匹配)模式,也不处理通常由 shell 完成的其他扩展、管道或重定向。2. 相关函数2.1 Variablesvar ErrNotFound = errors.New("executa

2020-06-01 21:37:43 6076

原创 Numpy 对象和字符串相互转换

在实际工作中有个需求是需要将 Numpy 的二进制对象转换为字符串,经过某种处理之后,再将字符串还原为 Numpy 对象,这就需要用到 Numpy 自带的 tostring 和 fromstring 方法。在此记录下其使用方法。1. tostring 方法将 numpy 对象转换为字符串:In [1]: import numpy as npIn [2]: a = np.array([[1,2], [3,4]])In [3]: aOut[3]: array([[1, 2],

2020-06-01 20:33:39 10861 2

数据结构与算法分析 算法的经典著作

经典的数据结构算法与分析 可以与C语言结合起来很好的学习 对于提高C有很大的帮助

2011-05-24

C语言经典编程实例 带程序结果

C语言经典编程,给出了在学习C的过程中的经典程序,值得一看,很实用的,是学习C很好的材料,可以帮你少走弯路。

2011-05-24

OFDM MATLAB 仿真程序

OFDM的 MATLAB 仿真程序,可以帮助你更好的理解OFDM的原理,以及在学习过程中更好的利用OFDM做毕业设计等等。

2011-05-22

4位EDA计数器(VHDL语言)

详细说明了4位十进制的VHDL表示方法,以此为经验可以编写任意进制的计数器

2011-05-20

4位十进制频率计设计

详细讲述了4位十进制频率机的设计以及应用,很有帮助对学习VHDL

2011-05-20

高质量的C++/C编程指南

很好的一本书,有了它找工作很方便的,书中列举了各种常犯的错误,是用人单位最爱考的部分。很好,用过就知道

2011-05-14

C语言趣味程序百例精解

主要针对C语言的初学者,很有启发性,可以认真的看看

2011-05-08

让你不再害怕指针 经典的指针讲解和练习

拥有它 你就可以完全理解C的精华 再也不害怕指针了 堪称经典!!

2011-02-18

空空如也

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

TA关注的人

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