关于 Julia 语言的深度学习快速入门(Knet.jl)

时间:2021-02-09 18:24:45

标签: deep-learning julia conv-neural-network

Julia 语言深度学习框架, 这是 Knet.jl 的快速入门, https://denizyuret.github.io/Knet.jl/latest/tutorial/#Tutorial

NumberFormatter

复杂类型 Conv 有三个字段,w、b 和 f。

Conv type c(x)函数用f函数广播下一个函数。

w矩阵和x矩阵的内积用conv4(c.w,x)计算,和c.b的加法用with进行。 +.

我不知道池在那个矩阵中寻找什么。

这个(pool (conv4 ...))是通过relu激活函数传递的。

最后的Conv(w1,w2,cx,cy,f=relu)=Conv(param(w1,w2,cx,cy),param0(1,1,cy,1),f); 我不知道我要做什么。

这是理解的情况。 你想做什么,尤其是在游泳池里? 为什么第 5 行有两个参数? 我不知道。

1 个答案:

答案 0 :(得分:0)

实际上,该层先进行卷积,然后再进行最大池化:

<块引用>

池化层通过将一层神经元簇的输出组合成下一层的单个神经元来减少数据的维度。局部池化结合了小簇,通常为 2 x 2。全局池化作用于卷积层的所有神经元。有两种常见的池化类型:最大值和平均值。最大池化使用前一层每个神经元簇的最大值,而平均池化则使用平均值。 (来源:https://en.wikipedia.org/wiki/Convolutional_neural_network#Pooling_layers

第 5 行有两个 params,因为卷积层有两个可训练的参数:内核权重 w 和偏差 b。函数 param(和 param0)用正确的大小初始化它们,并将它们标记为将在优化过程中更新的可训练参数。

为了学习神经网络,我发现以下示例:linear regression 和一个简单的 feed-forward network (multilayer perceptron) 非常有用。