Skip to content

Instantly share code, notes, and snippets.

@koaning koaning/main.py
Created Nov 16, 2019

Embed
What would you like to do?
keras grid job
import uuid
import json
import random
import keras
import numpy as np
import tensorflow as tf
import click
def build_model(blob):
inputs = keras.Input(shape=(blob['num_columns'],), name='img')
x = keras.layers.Dense(blob['num_columns'], activation='sigmoid')(inputs)
for i in range(blob['num_layers']-1):
x = keras.layers.Dense(blob['num_columns'], activation='sigmoid')(x)
outputs = keras.layers.Dense(blob['num_columns'], activation='sigmoid')(x)
model = keras.Model(inputs=inputs, outputs=outputs, name='mnist_model')
model.compile(loss='binary_crossentropy', optimizer=keras.optimizers.Adam(learning_rate=0.1))
return model
def train_model(mod, blob):
np.random.seed(42)
train = np.random.randint(0, 2, (blob['rows'], blob['num_columns']))
mod.compile(loss=blob['loss_func'], optimizer=keras.optimizers.Adam(learning_rate=0.1))
return mod.fit(train, train,
validation_split=0.2,
epochs=blob['epochs'],
verbose=0,
callbacks=[keras.callbacks.ReduceLROnPlateau(monitor='val_loss', factor=0.5,
patience=15, verbose=2,
mode='auto', min_delta=0.01)])
def build_train(blob):
tf.set_random_seed(blob['tf_seed'])
model = build_model(blob)
hist = train_model(model, blob)
blob.update(hist.history)
blob['lr'] = [float(i) for i in blob['lr']]
return blob
if __name__ == "__main__":
res = build_train({'num_columns': random.choice([10, 11, 12]), 'num_layers': random.choice([1, 3, 2, 3, 4, 4, 5, 5]),
'loss_func': 'binary_crossentropy', 'tf_seed': random.randint(1, 4200),
'epochs': 300, 'rows': random.choice([2000, 3000, 4000])})
with open(f"/Users/vincent/Development/grid/logs/{str(uuid.uuid4())[:14]}.jsonl", "w") as f:
json.dump(res, f)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.