关于python or numpy在实现神经网络中的一些建议
在编写神经网络时:
1.不要使用秩为1的一维数组
2.总是使用n x 1维矩阵(列向量-column vector)或者1 X n维矩阵(行向量-row vector)
3.敢于使用reshape()来确保你的矩阵或向量所需要的维数
4.在不完全确定一个向量的维维度时使用assert()语句
(Python assert(断言)用于判断一个表达式,在表达式条件为 false 的时候触发异常。
断言可以在条件不满足程序运行的情况下直接返回错误,而不必等待程序运行后出现崩溃的情况。)
demo:
a = np.random.randn(5) # Don't use
# a.shape = (5,) # rank 1 array
a = np.random.randn(5,1) # a.shape=(5,1) column vector
a = np.random.randn(1,5) # a.shape=(1,5) row vector
assert(a.shape == (5,1))
a = a.reshape((5,1))