Я пишу пользовательскую функцию потерь в кератах.Я хочу сравнить два тензора, но метрики, потери и вся модель являются «символическими» тензорами.Это означает, что у них нет абсолютно никаких данных (или значений) до момента, когда мы начнем подбирать или прогнозировать.
Поэтому я хочу знать, есть ли способ избежать получения значения
Я пытался 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
, для выполнения подграфов, обусловленных значением тензора.