コード例 #1
0
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
コード例 #2
0
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))
コード例 #3
0
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
コード例 #4
0
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
コード例 #5
0
ファイル: anl_mlp_1.py プロジェクト: bigwater/nas4candle
    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
コード例 #6
0
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
コード例 #7
0
def create_mlp_node(node):
    node.add_op(Dense(1000, tf.nn.relu))
コード例 #8
0
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