--- a
+++ b/src/model_defs/baseline.py
@@ -0,0 +1,51 @@
+# baseline model
+
+num_chan_in = 2
+height = 512
+width = 512
+num_classes = 6
+
+inputs = K.layers.Input([height, width, num_chan_in], name="DICOM")
+
+params = dict(kernel_size=(3, 3), activation="relu",
+                      padding="same",
+                      kernel_initializer="he_uniform")
+
+convA = K.layers.Conv2D(name="convAa", filters=32, **params)(inputs)
+convA = K.layers.Conv2D(name="convAb", filters=32, **params)(convA)
+poolA = K.layers.MaxPooling2D(name="poolA", pool_size=(2, 2))(convA)
+
+convB = K.layers.Conv2D(name="convBa", filters=64, **params)(poolA)
+convB = K.layers.Conv2D(
+    name="convBb", filters=64, **params)(convB)
+poolB = K.layers.MaxPooling2D(name="poolB", pool_size=(2, 2))(convB)
+
+convC = K.layers.Conv2D(name="convCa", filters=32, **params)(poolB)
+convC = K.layers.Conv2D(
+    name="convCb", filters=32, **params)(convC)
+poolC = K.layers.MaxPooling2D(name="poolC", pool_size=(2, 2))(convC)
+
+flat = K.layers.Flatten()(poolC)
+
+drop = K.layers.Dropout(0.5)(flat)
+
+dense1 = K.layers.Dense(128, activation="relu")(drop)
+
+dense2 = K.layers.Dense(num_classes, activation="sigmoid")(dense1)
+
+model = K.models.Model(inputs=[inputs], outputs=[dense2])
+
+opt = K.optimizers.Adam()
+
+model.compile(loss=K.losses.categorical_crossentropy,
+              optimizer=opt,
+              metrics=[tf.keras.metrics.CategoricalCrossentropy()])
+
+# loss = tf.nn.weighted_cross_entropy_with_logits()
+# https://www.tensorflow.org/api_docs/python/tf/nn/weighted_cross_entropy_with_logits
+
+                                                                 
+model.fit_generator(TRAINING_DATA, 
+                    validation_data=VALIDATION_DATA, 
+                    callbacks=[checkpoint, tb_logs],
+                    epochs=EPOCHS)
\ No newline at end of file