2016-11-14 12 views
0

私はKerasで始まります。私はいくつかのタイプを実装する必要があります: 出力として1チャンネル入力と2チャンネルの両方の回帰を持つCNNですか?1入力と2チャンネル出力(回帰)のCNN(イメージ)を行うにはどうすればよいですか?

+0

感謝の人々が、私は解決することができました。 –

+0

自己回答を投稿すると、他の人がそれから学ぶことができるかもしれません – WorldSEnder

+0

ありがとうございます! :) –

答えて

0

私のソリューション

dataset = "./dataset/img/" 
dataset_file = "./dataset/gt.txt" 

def model_network(dense_y, dense_x): 

    main_input = Input(shape=shape_img[1:], name="main_input") 
    flow = Convolution2D(32, 3, 3, border_mode='same')(main_input) 
    flow = Activation('relu')(flow) 
    flow = Convolution2D(32, 3, 3)(flow) 
    flow = Activation('relu')(flow) 
    flow = MaxPooling2D(pool_size=(2, 2))(flow) 
    flow = Dropout(0.25)(flow) 

    flow = Convolution2D(64, 3, 3, border_mode='same')(flow) 
    flow = Activation('relu')(flow) 
    flow = Convolution2D(64, 3, 3)(flow) 
    flow = Activation('relu')(flow) 
    flow = MaxPooling2D(pool_size=(2, 2))(flow) 
    flow = Dropout(0.25)(flow) 

    flow = Convolution2D(512, 3, 3, border_mode='same')(flow) 
    flow = Activation('relu')(flow) 
    flow = Convolution2D(512, 3, 3)(flow) 
    flow = Activation('relu')(flow) 
    flow = MaxPooling2D(pool_size=(2, 2))(flow) 
    flow = Dropout(0.25)(flow) 

    flow = Flatten()(flow) 
    cod_x = Dense(100)(flow) 
    output_x = Dense(dense_x, activation='sigmoid', name="output_x")(cod_x) 

    cod_y = Dense(100)(flow) 
    output_y = Dense(dense_y, activation='sigmoid', name="output_y")(cod_y) 
    model = Model(input=[main_input], output=[output_x, output_y]) 

    return model 


def train_model(model, path): 

    # let's train the model using SGD + momentum (how original). 
    sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True) 

    print("... compiling") 
    model.compile(optimizer=sgd, 
        loss_weights=[0.5, 0.5], 
        loss='categorical_crossentropy') 

    print("... training") 
    model.fit_generator(generate_array_files(path), samples_per_epoch=500, nb_val_samples=60, nb_epoch=10) 
    save_model(model) 


if __name__ == '__main__': 
    path = "dataset_names.csv" 

    model_tracking = model_network(length_y, length_x) 

    train_model(model_tracking, path=path) 
関連する問題