예제 #1
0
import os
from tensorflow import keras
from tensorflow.keras.layers import Conv2D, Flatten, Dense, Dropout
import datetime
from load_data import LoadData
from kerastuner.tuners import RandomSearch
from kerastuner.engine.hyperparameters import HyperParameters


# Turn off TensorFlow warning messages in program output
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

LOG_DIR = f"tuner_logs/{datetime.datetime.now().timestamp()}"

dataloader = LoadData()
(X_testing, Y_testing) = dataloader.next(70)
X_training, Y_training = dataloader.next()
print(len(X_training))
def build_model(hp):
    model = keras.models.Sequential()
    model.add(Dense(hp.Int("input_units", min_value=16, max_value=160, step=16),
                     input_shape=X_testing.shape[1:]))
    for i in range(hp.Int("num_layers", min_value=1, max_value=6, step=2)):
        model.add(Dense(hp.Int(f"units_{i}", min_value=12, max_value=24, step=4), activation=keras.activations.relu))
    # model.add(Dropout(hp.Choice("learning_rate", values=[0.1, 0.2])))
    model.add(Dense(1, activation=keras.activations.sigmoid))

    model.compile(
        optimizer=keras.optimizers.Adam(hp.Choice("learning_rate", values=[1e-2, 1e-3, 1e-4])),
        loss=keras.losses.binary_crossentropy,
        metrics=['accuracy'])