Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Keras中实现自定义损失函数时遇到问题_Python_Keras_Conv Neural Network - Fatal编程技术网

Python 在Keras中实现自定义损失函数时遇到问题

Python 在Keras中实现自定义损失函数时遇到问题,python,keras,conv-neural-network,Python,Keras,Conv Neural Network,我正在尝试在Keras中实现一个自定义损失函数。该模型需要花费大量时间进行编译,并且内存(RAM)不足 我的预测有形状:(无,16,16,5),其中最后一个维度有元素: [probability, x_coordinate_of_box, y_coordinate of box, width_of_box, height_of_box] 我正在尝试实现一个类似于此损失函数的函数: 注:x在32范围内,因为批次大小为32 K.get_shape().as_list()或K.int_shape(

我正在尝试在Keras中实现一个自定义损失函数。该模型需要花费大量时间进行编译,并且内存(RAM)不足

我的预测有形状:(无,16,16,5),其中最后一个维度有元素:

[probability, x_coordinate_of_box, y_coordinate of box, width_of_box, height_of_box]
我正在尝试实现一个类似于此损失函数的函数:

注:x在32范围内,因为批次大小为32

K.get_shape().as_list()
K.int_shape()
将批大小返回为无

我希望模型使用自定义丢失,但是
model.compile()
步骤会继续处理,并耗尽内存/RAM

另外,如果有人能帮助我在运行时得到预测的形状,那将是非常棒的

import keras.backend as K
def yoloLoss(y_true, y_pred):
  sse = 0
  l_bbox = 0
  shape = y_pred.get_shape().as_list()
  w_coord = 1
  w_box = 5
  for x in range(32):
    for i in range(shape[1]):
      for j in range(shape[2]):
          sse += (y_pred[x][i][j][0] - y_true[x][i][j][0])**2
          l_bbox +=  w_coord*((y_pred[x][i][j][1] - y_true[x][i][j][1])**2 + (y_pred[x][i][j][2] - y_true[x][i][j][2])**2) + w_box*((y_pred[x][i][j][2]**0.5 - y_true[x][i][j][2]**0.5)**2 + (y_pred[x][i][j][3]**0.5 - y_true[x][i][j][3]**0.5)**2)
  return sse + l_bbox