# 変数 model_name = 'model4' nb_epoch = 1000 validation_split = 0.2 lr = 0.01 start = 0.03 stop = 0.001 learning_rates = np.linspace(start, stop, nb_epoch) momentum = 0.9 nesterov = True loss_method = 'mean_squared_error' arch_path = 'model/' + model_name + '-arch-' + str(nb_epoch) + '.json' weights_path = 'model/' + model_name + '-weights-' + str(nb_epoch) + '.hdf5' # データ読み込み X, y = load2d() X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=validation_split, random_state=42) # image_dim_orderring に合わせて2D画像のshapeを変える X_train, input_shape = reshape2d_by_image_dim_ordering(X_train) X_val, _ = reshape2d_by_image_dim_ordering(X_val) # モデル定義 model = Sequential() model.add(Convolution2D(32, 3, 3, input_shape=input_shape)) model.add(Activation('relu')) model.add(MaxPooling2D(pool_size=(2, 2)))
'left_eyebrow_outer_end_x', 'left_eyebrow_outer_end_y', 'right_eyebrow_outer_end_x', 'right_eyebrow_outer_end_y', ), flip_indices=((0, 2), (1, 3), (4, 6), (5, 7)), ), ] # モデル定義 specialists = OrderedDict() for setting in SPECIALIST_SETTINGS: # 特定のカラムのデータの取得 cols = setting['columns'] X, y = load2d(cols=cols) X_train, X_val, y_train, y_val = train_test_split( X, y, test_size=validation_split, random_state=42) # output layerだけカラムに合わせて修正 model = load_arch('model/model7-arch-5000.json') # アーキテクチャのみを取り出す model.layers.pop() # 出力層を取り除く model.outputs = [model.layers[-1].output] model.layers[-1].outbound_nodes = [] model.add(Dense(len(cols))) # 新しい出力層を追加 # モデルを保存しておく arch_path = 'model/' + model_name + '-' + setting['id'] + '-arch-' + str( nb_epoch) + '.json' save_arch(model, arch_path) # モデルを保存しておく