hi, i am working on private data with keras. I use different activation functions and optimization algorithms. I’m doing this wandb sweep, but it trains one possibility more than once. example relu-lr=0.001-adam-batch_size=4 has trained probability more than 6 times. what is the reason of this. and I’m not sure of the correctness of my code
my code :
import tensorflow as tf
import numpy as np
base_dir="/content/f1"
train_datagen=tf.keras.preprocessing.image.ImageDataGenerator(
    rescale=1./255,
    shear_range=0.2,
    zoom_range=0.2,
    horizontal_flip=True,
    validation_split=0.1
    )
test_datagen=tf.keras.preprocessing.image.ImageDataGenerator(
     rescale=1./255,
     validation_split=0.1
)
train_datagen=train_datagen.flow_from_directory(
    base_dir,
    target_size=(500,500),
    subset='training',
    batch_size=2
)
test_datagen=test_datagen.flow_from_directory(
    base_dir,
    target_size=(500,500),
    subset='validation',
    batch_size=2
)
wandb.login()
sweep_config = {
    'method': 'random',
    'metric': {
      'name': 'accuracy',
      'goal': 'maximize'   
    },
    'parameters': {
        'epochs': {
            'values': [2,4]
        },
        'learning_rate': {
            'values': [0.01,0.001]
        },
        'optimizer': {
            'values': ['adam','rmsprop']
        },
        'activation': {
            'values': ['relu', 'elu', 'selu']
        }
    }
}
sweep_id = wandb.sweep(sweep_config, entity="sdad", project="func")
def train():
    config_defaults = {
        'epochs': 2,
        'batch_size': 2,
        'learning_rate': 0.001,
        'activation': 'relu',
        'optimizer': 'adam',
        'seed': 42
    }
    wandb.init(config=config_defaults)
    
    config = wandb.config
    
    model= Sequential()
    model.add(layers.Conv2D(filters=4,activation=config.activation,kernel_size=(5,5),input_shape=(500,500,3)))
    model.add(layers.MaxPooling2D((2,2)))
    model.add(layers.Conv2D(filters=8,activation=config.activation,kernel_size=(3,3)))
    model.add(layers.MaxPooling2D((2,2)))
    model.add(layers.Conv2D(filters=16,activation=config.activation,kernel_size=(2,2)))
    model.add(layers.MaxPooling2D((2,2)))
    model.add(layers.Conv2D(filters=32,activation=config.activation,kernel_size=(2,2)))
    model.add(layers.Flatten())
    model.add(Dense(50,activation=config.activation))
    model.add(Dense(100,activation=config.activation))
    model.add(Dense(100,activation=config.activation))
    model.add(Dense(50,activation=config.activation))
    model.add(Dense(4,activation="softmax"))
  
    model.compile(loss = "categorical_crossentropy", optimizer = config.optimizer, metrics=['accuracy'])
    model.fit(train_datagen, batch_size=config.batch_size,
              epochs=config.epochs,
              validation_data=test_datagen,
              callbacks=[WandbCallback(data_type="image", validation_data=test_datagen)])