I have my own pytorch model and I want to use it as a fastai learner. How do I do this?
Based on what I understand from the docs, the cnn_learner method uses the passed model as a base architecture and adds a head to it. I don’t want it to happen. Also, I have a custom loss function I’d like to use to train the model.
data should be a DataBunch, that feeds data to your model.
Your model should then process that data and return a prediction vector which will be used with the loss_func and a target vector to compute the loss. You can use the data_block API to construct the DataBunch. If your models takes multiple input in its forward pass, your collate_fn will have to stack them in the form ((x1, x2, x3, ...), y) where x1, x2, x3, … are the different arguments of the forward
method of your model, if not, either x, y or [x], y are fine and most likely you won’t have to touch the collate_fn at all.
What is the default loss function for multi class classification data.?
learn.loss_func gives FlattenedLoss of CrossEntropyLoss().
I want load a pytorch model trained for 1000 classes and fine tune it for 5 classes.
As suggested I am using learn = learner(data, model, loss_func = loss_func).
But what is the loss_func to be passed?