我目前正在尝试将 numpy 数组列表保存到单个文件中,此类列表的示例可以采用以下形式
import numpy as np
np_list = []
for i in range(10):
if i % 2 == 0:
np_list.append(np.random.randn(64))
else:
np_list.append(np.random.randn(32, 64))
Run Code Online (Sandbox Code Playgroud)
我可以通过迭代列表将所有这些使用合并到一个文件中savez,但还有其他方法吗?我正在尝试保存函数返回的权重model.get_weights(),这是一个列表ndarray,在从保存的文件中检索权重后,我打算使用将这些权重加载到另一个模型中model.set_weights(np_list)。因此,列表的格式必须保持不变。如果有人有一种优雅的方式来做到这一点,请告诉我。
通过考虑以下方法可以解决这个问题,其他一些人和我实际上是错的:
说有一个
test = [ [ [0], 1 ],
[ [1], 1 ]
]
import numpy as np
nptest = np.array(test)
Run Code Online (Sandbox Code Playgroud)
背后的原因是什么?
>>> nptest[:,0]==[1]
array([False, False], dtype=bool)
Run Code Online (Sandbox Code Playgroud)
而有人
>>> nptest[0,0]==[1],nptest[1,0]==[1]
(False, True)
Run Code Online (Sandbox Code Playgroud)
>>> nptest==[1]
array([[False, True],
[False, True]], dtype=bool)
Run Code Online (Sandbox Code Playgroud)
要么
>>> nptest==1
array([[False, True],
[False, True]], dtype=bool)
Run Code Online (Sandbox Code Playgroud)
这是因为尺寸方面的退化导致了这种情况.