# 変数
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)))
Пример #2
0
            '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)  # モデルを保存しておく