Как без ошибок преобразовать numy-функции в тензорные операции - PullRequest
0 голосов
/ 09 апреля 2019

Я создаю собственную потерю, которая учитывает градиент и лапласиан изображения

def custom_loss_mse_GradLap(X_true, X_pred):

  X_pred_GradLap = np.asarray(model_CompGradientLaplacian(X_pred))
  X_true_GradLap = np.asarray(model_CompGradientLaplacian(X_true))

  #define the parametrs
  alpha          = np.array([1/3,1/3,1/3])
  # mse for field

  loss1   = K.mean(K.square(X_pred-X_true), axis=-1)                             

  # mse for gradient
  loss2 = K.mean(K.square(X_pred_GradLap[0]-X_true_GradLap[0]), axis=-1)

  # mse for laplacian
  loss3 = K.mean(K.square(X_pred_GradLap[1]-X_true_GradLap[1]),axis=-1)

  return alpha[0] * loss1 + alpha[1] * loss2 + alpha[2] * loss3

Но у меня проблемы с вычислением градиента и лапласиена.Я попробовал следующее, но это вызывает ошибки

input=tf.placeholder(shape=(64,64),dtype=tf.float32)
def calc_grad(x):
  return np.gradient(x)
grad = Lambda(lambda x:tf.py_func(calc_grad,[x],tf.float32))
model_grad = Model(input_data,grad)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...