首先,我想说这是我第一次在这里发问,我希望我不会违反任何规则,如果是的话,请随时纠正我。我会尽量说清楚。在
我正在实现我自己版本的卷积神经网络(CNN),我正面临一个关于numpy数组的问题。我的实现一直在工作,而且还在工作,问题是我的CNN实例占用了比几个小时前更多的内存。故障排除后,我发现只有全连通层的参数才显示出这个问题(可能是因为它太重了,所以在卷积层就不会出现问题)。 我加载了一个旧的实例,我保存了它来演示。两者都是大小几乎相同的numpy阵列:
>>> n.FCLay[0].theta.values.shape
(27744, 800)
>>> m.FCLay[0].theta.values.shape
(23064, 800)
n是“大”CNN,m是“小”CNN(考虑内存使用)
此外,它们包含的数据类型与显示的screen capture相同
但是,当我查看它们与pympler's asizeof一起使用的内存时,我得到的是:
^{pr2}$正如你所看到的,差别是相当大的。在
所以我一直在尝试不同的东西:
^{3}$似乎这里的大小是可比的,我不明白为什么如果你参考一系列的结果
>>> n.FCLay[0].theta.values.itemsize
2
>>> n.FCLay[0].theta.values.itemsize
2
关于源代码,这些值是如何初始化的:
self.values = np.random.randn
self.values = np.random.randn(sizePrevLay, sizeNextLay)
self.values *= sqrt(2.0/sizeInpt)
self.values = self.values.astype(np.float16)
(上述测试在初始化后和进行一些计算后给出了相同的结果)
谢谢你的阅读。我希望这已经足够了,请随意要求任何精确性。在
目前没有回答
相关问题 更多 >
编程相关推荐