def create_mlp_block(cell, input_node): block = Block() # first node of block n1 = ConstantNode(op=Dense(1000, tf.nn.relu), name='N1') cell.graph.add_edge(input_node, n1) # fixed input of current block block.add_node(n1) # second node of block n2 = ConstantNode(op=Dense(1000, tf.nn.relu), name='N2') block.add_node(n2) addNode1 = ConstantNode(name='Merging') addNode1.set_op(AddByPadding()) # edge created here block.add_node(addNode1) block.add_edge(n1, n2) block.add_edge(n2, addNode1) block.add_edge(n1, addNode1) # residual connection n3 = ConstantNode(op=Dense(1000, tf.nn.relu), name='N3') block.add_node(n3) block.add_edge(addNode1, n3) addNode2 = ConstantNode(name='Merging') addNode2.set_op(AddByPadding()) # edge created here block.add_node(addNode2) block.add_edge(n3, addNode2) block.add_edge(addNode1, addNode2) cell.add_block(block) return n1
def create_mlp_node(node): node.add_op(Identity()) node.add_op(Dense(100, tf.nn.relu)) node.add_op(Dense(100, tf.nn.tanh)) node.add_op(Dense(100, tf.nn.sigmoid)) node.add_op(Dropout(0.3)) node.add_op(Dense(500, tf.nn.relu)) node.add_op(Dense(500, tf.nn.tanh)) node.add_op(Dense(500, tf.nn.sigmoid)) node.add_op(Dropout(0.4)) node.add_op(Dense(1000, tf.nn.relu)) node.add_op(Dense(1000, tf.nn.tanh)) node.add_op(Dense(1000, tf.nn.sigmoid)) node.add_op(Dropout(0.5))
def create_cell_mlp(input_nodes): """Create a cell with convolution. Args: input_nodes (list(Node)): a list of input_nodes for this cell. Returns: Cell: the corresponding cell. """ cell = Cell(input_nodes) n1 = ConstantNode(name='N1') cell.graph.add_edge(input_nodes[0], n1) # fixed input connection n1.set_op(op=Flatten()) n2 = VariableNode('N2') n2.add_op(Identity()) n2.add_op(Dense(units=10)) n2.add_op(Dense(units=50)) n2.add_op(Dense(units=100)) n2.add_op(Dense(units=200)) n2.add_op(Dense(units=250)) n2.add_op(Dense(units=500)) n2.add_op(Dense(units=750)) n2.add_op(Dense(units=1000)) n3 = VariableNode('N3') n3.add_op(Identity()) n3.add_op(Activation(activation='relu')) n3.add_op(Activation(activation='tanh')) n3.add_op(Activation(activation='sigmoid')) n4 = VariableNode('N4') n4.add_op(Identity()) n4.add_op(Dropout(rate=0.5)) n4.add_op(Dropout(rate=0.4)) n4.add_op(Dropout(rate=0.3)) n4.add_op(Dropout(rate=0.2)) n4.add_op(Dropout(rate=0.1)) n4.add_op(Dropout(rate=0.05)) block = Block() block.add_node(n1) block.add_node(n2) block.add_node(n3) block.add_node(n4) block.add_edge(n1, n2) block.add_edge(n2, n3) block.add_edge(n3, n4) cell.add_block(block) cell.set_outputs() return cell
def create_mlp_block(cell, input_node): # first node of block n1 = ConstantNode(op=Dense(1000, tf.nn.relu), name='N1') cell.graph.add_edge(input_node, n1) # fixed input of current block # second node of block n2 = ConstantNode(op=Dense(1000, tf.nn.relu), name='N2') n3 = ConstantNode(op=Dense(1000, tf.nn.relu), name='N3') block = Block() block.add_node(n1) block.add_node(n2) block.add_node(n3) block.add_edge(n1, n2) block.add_edge(n2, n3) return block
def create_block(): # first node of block n1 = VariableNode('N1') for inpt in input_nodes: n1.add_op(Connect(cell.graph, inpt, n1)) # second node of block mlp_op_list = list() mlp_op_list.append(Identity()) mlp_op_list.append(Dense(5, tf.nn.relu)) mlp_op_list.append(Dense(5, tf.nn.tanh)) mlp_op_list.append(Dense(10, tf.nn.relu)) mlp_op_list.append(Dense(10, tf.nn.tanh)) mlp_op_list.append(Dense(20, tf.nn.relu)) mlp_op_list.append(Dense(20, tf.nn.tanh)) n2 = VariableNode('N2') for op in mlp_op_list: n2.add_op(op) # third node of block n3 = VariableNode('N3') for op in dropout_ops: n3.add_op(op) block = Block() block.add_node(n1) block.add_node(n2) block.add_node(n3) block.add_edge(n1, n2) block.add_edge(n2, n3) return block
def create_dense_cell_type2(input_nodes): """MLP type 2 Args: input_nodes (list(Node)): possible inputs of the current cell. Returns: Cell: a Cell instance. """ cell = Cell(input_nodes) # first node of block n1 = VariableNode('N_0') for inpt in input_nodes: n1.add_op(Connect(cell.graph, inpt, n1)) # second node of block mlp_op_list = list() mlp_op_list.append(Identity()) mlp_op_list.append(Dense(5, tf.nn.relu)) mlp_op_list.append(Dense(10, tf.nn.relu)) mlp_op_list.append(Dense(20, tf.nn.relu)) mlp_op_list.append(Dense(40, tf.nn.relu)) mlp_op_list.append(Dense(80, tf.nn.relu)) mlp_op_list.append(Dense(160, tf.nn.relu)) mlp_op_list.append(Dense(320, tf.nn.relu)) n2 = VariableNode('N_1') for op in mlp_op_list: n2.add_op(op) # third n3 = VariableNode('N_2') drop_ops = [] drop_ops.extend(dropout_ops) for op in drop_ops: n3.add_op(op) # 1 Blocks block1 = Block() block1.add_node(n1) block1.add_node(n2) block1.add_node(n3) block1.add_edge(n1, n2) block1.add_edge(n2, n3) cell.add_block(block1) cell.set_outputs() return cell
def create_mlp_node(node): node.add_op(Dense(1000, tf.nn.relu))
def create_cell_conv(input_nodes): """Create a cell with convolution. Args: input_nodes (list(Node)): a list of input_nodes for this cell. Returns: Cell: the corresponding cell. """ cell = Cell(input_nodes) n1 = ConstantNode(op=Conv1D(filter_size=20, num_filters=128), name='N1') cell.graph.add_edge(input_nodes[0], n1) # fixed input connection n2 = ConstantNode(op=Activation(activation='relu'), name='N2') n3 = ConstantNode(op=MaxPooling1D(pool_size=1, padding='same'), name='N3') n4 = ConstantNode(op=Conv1D(filter_size=10, num_filters=128),name='N4') n5 = ConstantNode(op=Activation(activation='relu'), name='N5') n6 = ConstantNode(op=MaxPooling1D(pool_size=10, padding='same'), name='N6') n7 = ConstantNode(op=Flatten(), name='N7') n8 = ConstantNode(op=Dense(units=200), name='N8') n9 = ConstantNode(op=Activation(activation='relu'), name='N9') n10 = ConstantNode(op=Dropout(rate=0.1), name='N10') n11 = ConstantNode(op=Dense(units=20), name='N11') n12 = ConstantNode(op=Activation(activation='relu'), name='N12') n13 = ConstantNode(op=Dropout(rate=0.1), name='N13') block = Block() block.add_node(n1) block.add_node(n2) block.add_node(n3) block.add_node(n4) block.add_node(n5) block.add_node(n6) block.add_node(n7) block.add_node(n8) block.add_node(n9) block.add_node(n10) block.add_node(n11) block.add_node(n12) block.add_node(n13) block.add_edge(n1, n2) block.add_edge(n2, n3) block.add_edge(n3, n4) block.add_edge(n4, n5) block.add_edge(n5, n6) block.add_edge(n6, n7) block.add_edge(n7, n8) block.add_edge(n8, n9) block.add_edge(n9, n10) block.add_edge(n10, n11) block.add_edge(n11, n12) block.add_edge(n12, n13) cell.add_block(block) cell.set_outputs() return cell