返回信息流各位好,我在使用autoencoder的时候需要两个loss function分别在不同的位置去计算,
autoencoder.compile(loss=['mse', paprLoss], loss_weights=[1.0,0.01], optimizer='adam')
autoencoder.fit(xtrain, [xtrain, ytrain], validation_data=(xval, [xval,yval]), batch_size=128, epochs=100, callbacks=callbacks)
我看有人是这样写的,paprLoss是他自定义的一个loss function,这里我想请问一下,在fit()里他写的这个xtrain, [xtrain, ytrain]应该如何理解? (x_train x_train) 去做mse (x_train y_train) 去做paprLoss吗?
然后他的paprLoss是这样写的
def paprLoss(y_true, y_pred):
yPower = K.sqrt(K.sum(K.square(y_pred), axis=1))
yMax = K.max(yPower, axis=-1)
yMean = K.mean(yPower, axis=-1)
yPAPR = 10 * log10(yMax/yMean)
return yPAPR
请问这里的y_true y_pred又该如何理解呢
这是一条镜像帖。来源:北邮人论坛 / python / #24176同步于 2019/7/19
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖
请教一下需要两个loss function的问题,使用keras.model.compil
buptliusiqi
2019/7/19镜像同步2 回复
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
少年,用 pytorch 吧:
keras 里面涉及到反向传播计算梯度等,都是 optimizer 的行为,默认模型只搭了个结构,然后计算的事交给optimizer,除非你自己重写/改,比较麻烦;
而在 pytorch 里面,这都是 layer 的行为,直接修改就行。
【 在 Dawn2016 的大作中提到: 】
: 少年,用 pytorch 吧:
: keras 里面涉及到反向传播计算梯度等,都是 optimizer 的行为,默认模型只搭了个结构,然后计算的事交给optimizer,除非你自己重写/改,比较麻烦;
: 而在 pytorch 里面,这都是 layer 的行为,直接修改就行。
-----------------------------------------------------------------------
比如layer wise learning rate 在torch中比keras中更加容易实现