input: def create_cat_dog_model() -> None:
      """ Creates a simple neural network in Keras to distinguish between cats and dogs.
      This function sets up a convolutional neural network (CNN) with three convolutional layers,
      followed by max pooling, dropout, flattening, and dense layers. The model is then compiled
      with binary cross-entropy loss and the Adam optimizer, and fitted using an image data generator.
      This example assumes a training dataset of 800 images located at '/path/to/dataset'.
      >>> create_cat_dog_model()
      """
output:     from keras.models import Sequential
      from keras.layers import Conv2D, MaxPooling2D, Dropout, Flatten, Dense
      from keras.preprocessing.image import ImageDataGenerator
  
      model = Sequential()
  
      model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(64, 64, 3)))
      model.add(MaxPooling2D(pool_size=(2, 2)))
  
      model.add(Conv2D(64, (3, 3), activation='relu'))
      model.add(MaxPooling2D(pool_size=(2, 2)))
  
      model.add(Conv2D(128, (3, 3), activation='relu'))
      model.add(MaxPooling2D(pool_size=(2, 2)))
  
      model.add(Dropout(0.25))
      model.add(Flatten())
      model.add(Dense(512, activation='relu'))
      model.add(Dropout(0.5))
      model.add(Dense(1, activation='sigmoid'))
  
      model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
  
      train_datagen = ImageDataGenerator(rescale=1./255, shear_range=0.2, zoom_range=0.2, horizontal_flip=True)
      training_set = train_datagen.flow_from_directory('/path/to/dataset', target_size=(64, 64), batch_size=32, class_mode='binary')
  
      model.fit(training_set, steps_per_epoch=800 // 32, epochs=25)