【发布时间】:2021-02-01 05:23:21
【问题描述】:
我是 Julia lang 的新手,我在许多文档的代码示例中看到了很多 julia>。
一开始,我以为这只是一个 REPL 代码示例,但我在看起来像脚本的代码示例中看到了它们,所以我很困惑。
来自MJLFlux.jl repository的示例:
using MLJ
import RDatasets
iris = RDatasets.dataset("datasets", "iris");
y, X = unpack(iris, ==(:Species), colname -> true, rng=123);
@load NeuralNetworkClassifier
julia> clf = NeuralNetworkClassifier()
NeuralNetworkClassifier(
builder = Short(
n_hidden = 0,
dropout = 0.5,
σ = NNlib.σ),
finaliser = NNlib.softmax,
optimiser = ADAM(0.001, (0.9, 0.999), IdDict{Any,Any}()),
loss = Flux.crossentropy,
epochs = 10,
batch_size = 1,
lambda = 0.0,
alpha = 0.0,
optimiser_changes_trigger_retraining = false) @ 1…60
【问题讨论】:
-
我认为这只是意味着他们从 repl 复制并粘贴了代码。 Julia 很聪明,可以忽略行首的
julia>,这样你就可以复制粘贴了。 -
嗯,我明白了。但是为什么上面代码的开头也没有
julia>?原始代码在什么上下文中运行? -
我的猜测是他们想在这些最小示例中显示特定行的一些输出。因此,他们不想输出的行会像在脚本中一样被压缩显示,而那些带有
julia>提示符的行被分开并显示来自 REPL 的输出。 -
可能有些代码是从文件中复制的,有些是从 REPL 中复制的。当我包含
julia>提示和删除它时,我也倾向于有点不一致。 -
我认为一个好的做法是将从 REPL 复制的代码块与未复制的代码块分开。复制粘贴到 REPL 的能力很神奇,但它只有在复制的整个段都是这样的情况下才有效 --- 如果你粘贴上面的块,你可能会得到“错误:方法定义中的错误:函数基础。>必须显式导入才能进行扩展”,因为
julia> clf = NeuralNetworkClassifier()被读取为函数定义>(julia, clf) = ...。
标签: julia