【发布时间】:2018-10-17 11:48:40
【问题描述】:
我正在尝试实现类似
if np.max(subgrid) == np.min(subgrid):
middle_middle = cur_subgrid + 1
else:
middle_middle = cur_subgrid
由于条件只能在运行时确定,我使用 Keras 语法如下
middle_middle = K.switch(K.max(subgrid) == K.min(subgrid), lambda: tf.add(cur_subgrid,1), lambda: cur_subgrid)
但是我收到了这个错误:
<ipython-input-112-0504ce070e71> in col_loop(j, gray_map, mask_A)
56
57
---> 58 middle_middle = K.switch(K.max(subgrid) == K.min(subgrid), lambda: tf.add(cur_subgrid,1), lambda: cur_subgrid)
59
60 print ('ml',middle_left.shape)
/nfs/isicvlnas01/share/anaconda3/lib/python3.5/site-packages/keras/backend/tensorflow_backend.py in switch(condition, then_expression, else_expression) 2561 The selected tensor. 2562 """
-> 2563 if condition.dtype != tf.bool: 2564 condition = tf.cast(condition, 'bool') 2565 if not callable(then_expression):
AttributeError: 'bool' object has no attribute 'dtype'
middle_middle、cur_subgrid 和 subgrid 都是 NxN 张量。任何帮助表示赞赏。
【问题讨论】:
标签: if-statement tensorflow keras switch-statement backend