【发布时间】:2018-09-23 13:19:25
【问题描述】:
我的问题可能很容易为您解决,但我没有找到任何答案,也不知道如何实现,因为我对 Keras 和 Tensorflow 也很陌生。
问题:我使用了一个预训练的图像分割网络(PSPNet by Hengshuang Zhao et al 2017),为此有人使用 Tensorflow 后端(PSPNet-Keras-tensorflow)将权重从 Caffe 转换为 Keras。
我想计算分类交叉熵损失函数相对于权重的梯度,目前还没有那么复杂并且我可以解决。但问题在于损失函数,因为我只想要预测的单个像素的损失。
到目前为止,我对整个图像的丢失是:
weights = model.trainable_weights
gradients = model.optimizer.get_gradients(model.total_loss, weights)
# model is compiled with categorical crossentropy
input_tensor = [model.inputs[0], # input data
model.sample_weights[0], # how much to weight each sample by
model.targets[0], # labels
keras.backend.learning_phase() # train or test mode]
get_gradients = keras.backend.function(inputs=input_tensors, outputs=gradients)
如何调整它以仅计算单个像素的损失?
PS:之后我想遍历整个图像(约 200 万像素)并为每个像素计算分类交叉熵损失相对于权重的梯度。
感谢您的任何帮助和建议。
【问题讨论】:
标签: python tensorflow deep-learning keras image-segmentation