keras-tuner
keras-tuner copied to clipboard
Cannot SubClass - NotImplementedError Thrown
Hi, I am trying to run Keras- Tune for something I am building, which requires a Conv1D and I need to pass in parameters to my model.
`class MyHyperModel(HyperModel): def init(self, vocab_size, vector_size, word_vector_matrix, max_len): self.vocab_size = vocab_size self.vector_size = vector_size self.word_vector_matrix = word_vector_matrix self.max_len = max_len
def build_model(self,hp):
model = tf.keras.Sequential()
model.add(Embedding(self.vocab_size,
self,vector_size,
weights=[self.word_vector_matrix],
input_length=self.max_len,
trainable=False))
for i in range(hp.Int("n_layers",1,4)):
model.add(Conv1D(hp.Int("input_units",32,256,32), hp.Int("input_units",2,8,1), activation='relu'))
model.add(MaxPooling1D(hp.Int("input_units",2,8,1)))
model.add(Dropout(0.5))
model.add(Conv1D("input_units",32,256,32, hp.Int("input_units",2,8,1), activation='relu'))
model.add(MaxPooling1D(hp.Int("input_units",2,20,4)))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
model.compile(optimizer=Adam(learning_rate=LR), loss='binary_crossentropy', metrics=['accuracy'])
return model
EarlyStopping = tf.keras.callbacks.EarlyStopping( monitor='val_loss', min_delta=0, patience=2, verbose=0, mode='auto', baseline=None, restore_best_weights=True )
filepath = "weights-{epoch:02d}-{val_accuracy:.2f}.hdf5"
ModelCheckpoint = tf.keras.callbacks.ModelCheckpoint( filepath=f"./data/modelCheckpoints/{filepath}",save_weights_only=True, monitor='val_loss', save_best_only=True, mode='min', save_freq='epoch' )
weight_for_0 = (1/neg)(total)/2.0 weight_for_1 = (1/pos)(total)/2.0
class_weight = {0: weight_for_1, 1: weight_for_0}
tuner = RandomSearch(MyHyperModel(vocab_size,vector_size,word_vector_matrix,max_len),objective='val_loss',max_trials=3,executions_per_trial=2,directory=LOG_DIR) tuner.search(x=x_train,y=y_train,epochs=30,batch_size=64, validation_data = (x_test,y_test),callbacks=[EarlyStopping,ModelCheckpoint],class_weight=class_weight)``
but I am getting the following error:
NotImplementedError
Is this an issue for how I am subclassing? Any help would be appreciated