BlacksmithNo4415

BlacksmithNo4415 t1_j6x2xia wrote

i've checked for papers that do exactly what you want.

so as I assumed this data is time sensitive and therefor you need an additional temporal dimension.

this model needs to be more complex in order to solve this problem.

i suggest reading this:

https://bmcmedinformdecismak.biomedcentral.com/articles/10.1186/s12911-021-01736-y

​

BTW: have you tried grid search for finding the right hyperparametrs?

oh and your model does improve..

have you increased the data set size??

1

BlacksmithNo4415 t1_j6uwn1n wrote

i can try to help you though, i worked as a deep learning engineer in computer vision:

  1. do you mean the dimension of 1 sample is [2000, 5] ? that is a very weird shape for an image. usually they have a shape of [h, w, 3] and [h, w, 4] for video data - a temporal additional dimension is added
  2. what do you want this model should be classifying ? so far it sounds more trivial - but depending on the object it might be a bit more complex.
  3. the more complex your task -> more complex your model must be -> a larger data set you will need
  4. how are the labels distributed in your data set ?
  5. do you use adversarial attacks for robustness ? don't do that at the beginning.
  6. are you sure that a cnn is the proper model for signal classification ?
  7. how do you want to represent your dataset ? what should be the 3rd axes represent as an information ?
  8. btw dropouts makes it also more difficult for the model to overfit. you use this so the model learns to generalize
  9. i think the model is way to complex when the task is actually trivial. but i never did any signal classification
  10. the use of sigmoid can lead to exploding gradients
−1

BlacksmithNo4415 t1_j6tfpkg wrote

try using markdowns:

​

        plotter = DLPlotter()     # add this line
        model = MyModel()
        ...
        total_loss = 0
        for epoch in range(5):
            for step, (x, y) in enumerate(loader):
                ...
                output = model(x)
                loss = loss_func(output, y)
                total_loss += loss.item()
                ...
        config = dict(lr=0.001, batch_size=64, ...)
        plotter.collect_parameter("exp001"", config, total_loss / (5 * len(loader))     # add this line
        plotter.construct()     # add this line
1

BlacksmithNo4415 t1_j6tfgmy wrote

too me it also sounds like a bad learning rate. have you checked the distribution of your weights for each layer in each step?

P.S: try hyperparameter optimization methods like grid search or baysian. in that way you get faster an answer to your question..

1