def __init__(self, incoming, memory, controller, heads, only_return_final=False, **kwargs): super(NTMLayer, self).__init__(incoming, **kwargs) self.memory = memory self.controller = controller self.heads = heads self.write_heads = WriteHeadCollection(heads=\ filter(lambda head: isinstance(head, WriteHead), heads)) self.read_heads = ReadHeadCollection(heads=\ filter(lambda head: isinstance(head, ReadHead), heads)) self.only_return_final = only_return_final