首页 > 解决方案 > 可变结构的参数与结构相同

问题描述

我正在尝试创建一个可变结构神经元,其参数输入为神经元向量类型。这在 Julia 中是否可行。以下是我正在做的事情。

mutable struct Neuron
inputs::Vector{Neuron}
weights::Vector{Float64}
func::Function
output::Float64
#= parameters::Vector{Float64} =#
end

我正在使用朱莉娅 1.0。错误:ERROR: LoadError: invalid redefinition of constant Neuron

标签: julia

解决方案


Julia 中可以使用自引用类型,如 Julia 文档所示:https ://docs.julialang.org/en/v1.0.0/manual/constructors/#Incomplete-Initialization-1

这个想法是您使用内部构造函数new()构造函数首先创建一个未完全初始化的神经元,然后使用它来创建其他神经元。

mutable struct Neuron
  inputs::Vector{Neuron}
  # forgetting about the other fields for a second
  Neuron() = new()
  # or alternatively Neuron() = begin (x=new(); x.inputs = [x]; x) end
end

推荐阅读