Train start
Train on 221286 samples, validate on 24588 samples
Epoch 1/150
/usr/local/lib/python2.7/dist-packages/numpy/core/numeric.py:482: ComplexWarning: Casting complex values to real discards the imaginary part
return array(a, dtype, copy=False, order=order)
221286/221286 [==============================] - 22s - loss: 0.0154 - val_loss: 0.0166
Epoch 2/150
print "Model definition!"
model = Sequential()
model.add(Dense(output_dim=13, input_dim=1025, init="normal",activation=K.tanh))
reduce_lr=ReduceLROnPlateau(monitor='val_loss', factor=0.01, patience=3, verbose=1, mode='auto', epsilon=0.001, cooldown=0, min_lr=0.00000001)
stop = EarlyStopping(monitor='val_loss', min_delta=0, patience=5, verbose=1, mode='auto')
log=csv_logger = CSVLogger('training_'+str(i)+'.csv')
hist_current = model.fit(train_set_data_vstacked_normalized[train],
train_set_output_vstacked_normlized[train],
shuffle=False,
validation_data=(train_set_data_vstacked_normalized[test],train_set_output_vstacked_normlized[test]),
validation_split=0.1,
nb_epoch=150,
verbose=1,
callbacks=[reduce_lr,log,stop])You could just treat complex numbers as 2D vectors (real and imaginary parts) and feed that to the neural network. You just need to preprocess the data correctly to just keep the real coefficients and not have complex numbers.