2024-04-19 15:33:30 发布
网友
我想简单地减去2个大小为784×1的矩阵 使用此代码
w2 = G.w - alpha *temp print(w2.size)
但是w2是一个784×784矩阵。为什么元素减法不能正常工作? temp和G.w都是784×1矩阵,alpha是标量(alpha = 0.1) 我在windows10上使用pycharm。 重新思考如何创建G.w和temp
w2
G.w
alpha
alpha = 0.1
使用^{}:
w2 = G.w - alpha *temp.reshape(-1,1) print(w2.shape) (784,1)
或^{}(慢一点,参见示例):
w2 = G.w - alpha *temp.transpose() print(w2.shape) (784,1)
示例
A = np.random.rand(100,1) B = np.random.rand(1,100) print(A.shape) (100, 1) print(B.shape) (1, 100) print((A - 0.1*B).shape) (100, 100) print((A - 0.1*B.reshape(-1,1)).shape) #3.86 µs per loop (100, 1) print((A - 0.1*B.transpose()).shape) #5.27 µs per loop (100, 1)
这可能是因为你没有按你想的方式工作 例如,如果temp是数组[1,2,3],alpha是2,那么
temp
[1,2,3]
2
alpha*temp = [1,2,3,1,2,3]
而不是=[2,4,6]
[2,4,6]
可以使用numpy数组而不是普通的python数组
#!....initialize G ,w ,alpha, temp w1 = G*w - alpha*temp #w1 will be a 784x1 array w2 = numpy.zeros((784,784)) for i in range(w1.shape[0]): w2[i][0] = w1[i] #this will set first coloumn to w1
使用^{} :
或^{} (慢一点,参见示例):
示例
这可能是因为你没有按你想的方式工作 例如,如果
temp
是数组[1,2,3]
,alpha
是2
,那么而不是=
[2,4,6]
可以使用numpy数组而不是普通的python数组
相关问题 更多 >
编程相关推荐