这段代码的输出是什么意思?

What output on this code means?

我以 this tutorial 为例来构建我的 caffe 自定义训练函数。第 15 节有以下代码:

def train():
    niter = 200
    test_interval = 25 
    train_loss = zeros(niter)
    test_acc = zeros(int(np.ceil(niter / test_interval)))

    ### HERE ###
    output = zeros((niter, 8, 10))
    ###      ###

第 8 行有一个 ndarray(输出),这段代码的含义及其尺寸。 (niter, 8, 10)是什么意思。为什么是 niter,为什么是 8,为什么是 10?我应该根据自己的数据集更改此数组吗?如果是,我应该使用什么维度?谁能给我解释一下?

它看起来像是对 numpy.zeros 的调用,其中 shape = (niter, 8, 10) 创建了一个 200 * 8 * 10 的 float 0 数组。

如果您仔细阅读本教程,您会发现它涉及数字分类,因此 10 类。此外,他们使用一个技巧将 8 个示例平铺在一起(第 11 节,In [11]: 附近):

# we use a little trick to tile the first eight images

因此 8 维度。

第 15 节显示了跟踪网络进度的示例。它保存每次迭代的输出预测概率。每次迭代有10类次8个例子,还有niter 要跟踪的迭代。所有这些信息都存储在 3D output 数组中。