如何解决Keras Tensor Shaping Problems (slicing) add_loss 零抑制损失
我实现了一个自动编码器,它将真实图像作为输入,潜在空间应该是该图像状态的黑白编码。 (这是一个棋盘游戏) 我正在尝试使用 Layer 类创建一个新的损失。 我想实现零抑制损失。 我的问题是在切片发生的地方。 (此处为第 7 行) 谁能帮我解决切片问题
class Zero_Suppress(Layer):
def __init__(self,rate=1e-2):
super(Zero_Suppress,self).__init__()
self.rate = rate
def call(self,inputs):
loss = K.mean(inputs,axis = [0,1])
loss = K.mean(loss[:,1:],axis =1)
#loss = K.reshape(loss,(-1,1,1))
self.add_loss(loss * self.rate)
return inputs
我收到的错误代码:
ValueError: in user code:
min_paper.py:17 call *
loss = K.mean(loss[:,axis =1)
ValueError: Index out of range using input dim 0; input has only 0 dims for '{{node zero__suppress/strided_slice}} = StridedSlice[Index=DT_INT32,T=DT_FLOAT,begin_mask=1,ellipsis_mask=0,end_mask=3,new_axis_mask=0,shrink_axis_mask=0](zero__suppress/Mean,zero__suppress/strided_slice/stack,zero__suppress/strided_slice/stack_1,zero__suppress/strided_slice/stack_2)' with input shapes: [],[2],[2] and with computed input tensors: input[3] = <1 1>.```
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。