Пользовательская функция потерь в Keras с 2D выходом - PullRequest
0 голосов
/ 17 апреля 2020

Я пытаюсь реализовать следующую функцию в качестве пользовательской функции потерь для модели Keras с использованием бэкэнда тензорного потока. Однако я не могу найти способ получить доступ к выводу модели и изолировать ее значения, чтобы я мог использовать их при определении оценки функции. Мне также нужен был бы способ получить номер выборки, который используется тренингом при каждом запуске функции потерь, чтобы использовать массив Coords для получения фактической (широта, долгота) каждой выборки

def distance_error(y_actual, y_predicted):
    R = 6378.1 #Radius of the Earth
    brng_pred = y_predicted[1]*(math.pi/180) #Bearing is 90 degrees converted to radians.
    d_pred = y_predicted[0] #Distance in km

    lat1 = math.radians(Coord[i,0]) #Current lat point converted to radians
    lon1 = math.radians(Coord[i,1]) #Current long point converted to radians    
    lat3 = math.asin( math.sin(lat1)*math.cos(d_pred/R) + math.cos(lat1)*math.sin(d_pred/R)*math.cos(brng_pred))
    lon3 = lon1 + math.atan2(math.sin(brng_pred)*math.sin(d_pred/R)*math.cos(lat1), math.cos(d_pred/R)-math.sin(lat1)*math.sin(lat3))
    true=(Coord[i+1,0],Coord[i+1,1])    
    mypred=(math.degrees(lat3),math.degrees(lon3))   
    testScore = geopy.distance.vincenty(true, mypred).km    
    return testScore

Is такая функция потери возможна? Я искал некоторое время и пытался, но не смог получить доступ к выходным значениям

...