train_ds = keras.utils.image_dataset_from_directory(
directory = '/content/train',
labels='inferred',
label_mode = 'binary',
batch_size=32,
image_size=(256,256)
)
validation_ds = keras.utils.image_dataset_from_directory(
directory = '/content/test',
labels='inferred',
label_mode = 'binary',
batch_size=32,
image_size=(256,256)
)
def build_model(hp):
model=Sequential()
counter=0
for i in range(hp.Int(‘Conv_layers’,min_value=1,max_value=4)):
if counter==0:
model.add(
Conv2D(
hp.Int('units'+str(i),min_value=16,max_value=64,step=8),
kernel_size=(3,3),
padding=hp.Choice('padding'+str(i),values=['valid','same']),
activation=hp.Choice('activation'+str(i),values=['tanh','relu','sigmoid']),
input_shape=(256,256,3)
)
)
else:
model.add(
Conv2D(
hp.Int('units'+str(i),min_value=8,max_value=128,step=8),
kernel_size= (3,3),
padding=hp.Choice('padding'+str(i),values=['valid','same']),
activation=hp.Choice('activation'+str(i),values=['tanh','relu','sigmoid']),
)
)
model.add(BatchNormalization())
model.add(MaxPooling2D(
pool_size=(2,2),
strides=hp.Int('units'+str(i),min_value=2,max_value=4,step=1),
padding=hp.Choice('padding'+str(i),values=['valid','same'])
)
)
counter += 1
for i in range(hp.Int(‘Num_layers’,min_value=1,max_value=10)):
model.add(
Dense(
hp.Int('units'+str(i),min_value=8,max_value=128,step=8),
hp.Choice('activation'+str(i),values=['tanh','relu','sigmoid'])
)
)
model.add(Dropout(hp.Choice('dropout'+ str(i),values=[0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9])))
model.add(Dense(1,activation=‘sigmoid’))
optimizer=hp.Choice(‘optimzer’,values = [‘adam’,‘nadam’,‘sgd’,‘rmsprop’,‘adadelta’])
model.compile(optimizer=optimizer,
loss='binary_crossentropy',
metrics=['accuracy']
)
return model
tuner=kt.RandomSearch(build_model,
objective='val_accuracy',
max_trials=5,
directory='CatVsDog',
project_name='version 1')
Above 3 blocks of code are getting executed but during the execution of below block I’m getting error (logits
and labels
must have the same shape, received ((None, 1, 1, 1) vs (None, 1))) can any one spot the error or give some suggestions
tuner.search(train_ds,epochs=5,validation_data=validation_ds)