首页 > 解决方案 > 在 Flux 中获取神经网络边缘的权重?

问题描述

我是 Julia 的 Flux 机器学习包的新手。我有一个简单的神经网络,包括以下内容:

该架构是使用以下代码片段构建的:

layer_1 = Dense(4,8,relu)
output_layer = Dense(8,3)
model = Chain(layer_1, output_layer, softmax)

我想查看所有边缘权重(训练后)。简而言之,权重...

我检查了 Flux 文档,但不知道该怎么做。我知道我可以这样做:

@show( layer_1([1,0,0,0]) )

这反过来将返回一个表示该层所有输出的向量,然后我可以反转激活函数以找到该层中每个神经元的边缘权重,但这对于应该是一个简单的任务来说似乎过于笨重。我肯定错过了什么。

你知道我怎样才能得到所有的边权重(输入 -> 隐藏层,隐藏层 -> 输出)吗?适用于上述情况的代码片段将是理想的。

谢谢!

标签: julia

解决方案


你可以做

@show layer_1.weight

查看第一层的权重矩阵。要查看单个边,您可以索引矩阵。

# edge from input 2 to hidden 1
@show layer_1.weight[1, 2]

编辑:在旧版本的通量上,layer_1.W用于Dense图层。


推荐阅读