我正在通过here的Julia中的Gen
模块为例,我偶然发现了以下代码:
@compiled @gen function generate_datum(x::Float64, prob_outlier::Float64, noise::Float64,
@ad(slope::Float64), @ad(intercept::Float64))
if @addr(bernoulli(prob_outlier), :is_outlier)
(mu, std) = (0., 10.)
else
(mu, std) = (x * slope + intercept, noise)
end
return @addr(normal(mu, std), :y)
end
抛出
UndefVarError:未定义@addr
与@ad
相同,我怀疑这是同一件事。由于我是Julia的新手,因此搜索不会返回模糊不清的相关内容。有人可以帮忙吗?
答案 0 :(得分:1)
对于每个https://github.com/probcomp/Gen/issues/161,链接所指向的文件不再属于存储库。这些宏被删除,而master分支反映了这一点!如果要运行这些示例,则需要切换到Gen
的旧版本。