我建立了一个全连接的前馈神经网络来识别手写数字。我使用了 MNIST 和另一个非常相似的数据集(包含阿拉伯数字 - 与 MNIST 相同的训练集和测试集计数)。
对于具有完全相同架构(1 个隐藏层、相同学习率、相同权重采样)的网络,我在使用 100 个图像进行训练的子样本上进行了测试。测试准确度非常低,但我注意到,对于阿拉伯数字,网络的训练时间要长得多(是英文数字的两倍——分别为 33 毫秒和 15 毫秒)。
这可能是什么原因?
我建立了一个全连接的前馈神经网络来识别手写数字。我使用了 MNIST 和另一个非常相似的数据集(包含阿拉伯数字 - 与 MNIST 相同的训练集和测试集计数)。
对于具有完全相同架构(1 个隐藏层、相同学习率、相同权重采样)的网络,我在使用 100 个图像进行训练的子样本上进行了测试。测试准确度非常低,但我注意到,对于阿拉伯数字,网络的训练时间要长得多(是英文数字的两倍——分别为 33 毫秒和 15 毫秒)。
这可能是什么原因?
可能有多种因素可能导致这种情况发生:
如果两个图像的数据类型不同 - np.float32vsnp.float64
您的计算机可能正在执行一些压缩和解压缩以优化内存使用。如果阿拉伯语数据集中的大多数像素彼此差异很大,那么压缩后的大小可能会更大,需要更多的时间来解压。
您的计算机碰巧同时运行了其他竞争进程,并扭曲了您其中一次运行的执行结果。
我建议您使用类似timeit的方法进行多次运行来验证此行为是否一致。