ocean-transport / lcs-ml

Lagrangian Coherent Structure identification for machine learning
1 stars 0 forks source link

First ML step: supervised learning #8

Open rabernat opened 3 years ago

rabernat commented 3 years ago

Train NN to label RCLVs based on LAVD field using the existing algorithm as a training dataset.

rabernat commented 3 years ago

Here is the very simple NN we coded up today in our meeting. This is NOT what you want to use, but it will get you started

from tensorflow import keras
keras.backend.set_image_data_format('channels_last')

model_size = 512
nchannels = 1

input_layer = keras.Input(shape=(model_size, model_size, nchannels))
conv_layer0 = keras.layers.Conv2D(10, 2, activation='relu')(input_layer)
conv_layer1 = keras.layers.Conv2D(10, 2, activation='relu')(conv_layer0)
conv_layer2 = keras.layers.Conv2D(10, 2, activation='relu')(conv_layer1)
sum_layer = keras.layers.Conv2D(1, 1, activation='softmax')(conv_layer2)

# todo: add "residual blocks", skip connections

model = keras.Model(inputs=input_layer, outputs=sum_layer)

optimizer = keras.optimizers.Adam()

# probably want to use cross entropy for loss
model.compile(loss='mse', optimizer=optimizer)
model.summary()