def test_edges_cell(self): # -> ((0)->(1)->(2)) -> ((3)->(4)->(5)) -> input_ = Node(Constant, input=True) hidden = Node(Constant) output = Node(Constant, output=True) input_.connect(hidden) hidden.connect(output) cell = Node(input_, hidden, output, inout=True) cells = Node(cell * 2) cells[0].input = True cells[1].output = True cells[0].connect(cells[1]) network = Network(cells) assert len(network.current) == 6 assert network.weights.getnnz() == 5 assert network.edges == [(0, 1), (1, 2), (2, 3), (3, 4), (4, 5)]
def lstm_unit(): # Define neurons read = Node(Product, input=True) remember = Node(Product, input=True) internal = Node(Sum) output = Node(Product, inout=True) # Combine and connect them read.connect(internal) remember.connect(internal) internal.connect(output, remember) return Node(read, remember, internal, output)