keras自定义层多输出实现

在keras的自定义层中实现多输出的注意事项

 

1. 自定义层的call方法:

如果两个输出x,y,其中x是tensor,y是list(y的项都是Tensor),不要输出return x,y

而是要把他们组成list,其中每个list的成员都必须是tensor,即return [x]+y。

注意:return [x.y]是错误的,本质上这个和return x,y没区别。一个return的是tuple(每个tuple的成员不全是Tensor),一个return的是list(每个list的成员不全是Tensor)

 

2.自定义层的compute_output_shape方法:

同时要修改该方法,对于上面所述的return [x]+y的修改可以改为

return [self.x.shape] + [yItem.shape for yItem in self.y]

注意在call方法中添加self.x=x和self.y=y

posted on 2022-08-13 10:00  博闻强记2010  阅读(225)  评论(0编辑  收藏  举报

导航