Есть ли функция keras для сравнения двух переменных без получения значения «символических» тензоров? - PullRequest
0 голосов
/ 09 мая 2019

Я пишу пользовательскую функцию потерь в кератах.Я хочу сравнить два тензора, но метрики, потери и вся модель являются «символическими» тензорами.Это означает, что у них нет абсолютно никаких данных (или значений) до момента, когда мы начнем подбирать или прогнозировать.

Поэтому я хочу знать, есть ли способ избежать получения значения

Я пытался K.eval() и K.greater() следующим образом:

def SeedFillNew(_binImg):
    area_list = K.variable(value=1, dtype='float32', name='std')
    area = K.variable(value=1, dtype='float32', name='area')
    label = 0                                  #  start by 1 
    rows,cols = 512,512
    mask = np.zeros((rows, cols),dtype = np.uint8)
    for i in range(0 , rows):
        for j in range(0 , cols):
            if  _binImg[i,j] >0.5  and mask[i,j] !=1  :
def SeedFillNew(_binImg):
    area_list = K.variable(value=1, dtype='float32', name='std')
    area = K.variable(value=1, dtype='float32', name='area')
    thresh = K.variable(value=0.5, dtype='float32', name='thresh')
    label = 0                                  #  start by 1 
    rows,cols = 512,512
    mask = np.zeros((rows, cols),dtype = np.uint8)
    for i in range(0 , rows):
        for j in range(0 , cols):
            if  K.greater(_binImg[i,j],thresh)  and mask[i,j] !=1  :

Я получаю:

Использование tf.Tensor в качестве Python bool не допускается.Используйте if t is not None: вместо if t:, чтобы проверить, определен ли тензор, и используйте операции TensorFlow, такие как tf.cond, для выполнения подграфов, обусловленных значением тензора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...