我正在Coursera学习机器学习课程,并正在做神经网络的练习。我的代码可以在本地运行并返回正确的答案,但是当我以八度提交时,它显示错误。
图片显示成本值正确。但是当我提交它时,答案是这样的:
这意味着y
越界,在我的脚本中y
是5000个样本的标签,它应该有5000行,y
发生了什么,为什么在本地运行时未发生。
文件在这里: ex4,nncostfunction
答案 0 :(得分:1)
虽然练习本身假设有5000个观察值,但是使用较少的观察值来评估要提交的代码。
您在代码中对数字5000进行了硬编码,而不是使用捕获观测值数量的变量(可能在代码中为m
)。因此,在for循环中,一旦超过16(大概是提交上下文中使用的观察值的数量),octave就会抱怨您正在尝试访问对该特定数组未定义的索引。
长话短说,您应该使用for i = 1:m
而不是for i = 1:5000
来使您的代码泛化为不超过5000的样本大小。