我正在尝试使用CVXPY训练一个有偏差的线性模型。假设给定了input和target。假设loss是一个cvxpy函数,它的第一个参数是凸的。我有以下代码:
import cvxpy as cvx
n_data = 100
d_in = 10
d_out = 10
beta = cvx.Variable(d_in, d_out)
bias = cvx.Variable(d_out)
input = np.random.rand(n_data, d_in)
...
objective = cvx.Minimize(loss(input @ beta + bias, target))
problem = cvx.Problem(objective)
problem.solve()由于input @ beta + bias导致广播错误:无法广播维度(100,10) (10,)
发布于 2019-07-14 01:12:21
用1的向量编写bias的外积,然后定义bias = cvx.Variable((d_out, 1))就行了。使用:
input @ beta + np.ones((n_data, 1)) @ biashttps://stackoverflow.com/questions/57020813
复制相似问题