psykei / psyki-python

PSyKI: a (Python) platform for symbolic knowledge injection
https://psykei.github.io/psyki-python/
Apache License 2.0
12 stars 1 forks source link

Discussion: who should train injected networks? #24

Open gciatto opened 1 year ago

gciatto commented 1 year ago

Currently, the injector just changes the input network's configuration. It is then the client's responsibility to train the network, hence "completing" the injection.

I'm wondering wethers this design is "clean": the injector is essentially delegating part of the injection efforts to its caller. This is cumbersome.

Let's talk about it.

MatteoMagnini commented 1 year ago

I see your point. However the training phase of a network is a whole world per se. Of course, we can ask the user for the main hyper-parameters for the training (e.g., training and validation set, epochs, batch size, early stop functions, etc.) but is it really worthy? I'm not sure about it, lets see also the opinions of the team.

andrearafanelli commented 1 year ago

Having a more personalized configuration of a neural network training may, in my opinion, be a more complete process that involved both the opportunity to train the neural network by comparing several configurations (selected by the user) and the injection of knowledge using various techniques. Since we are currently implementing some experiments that include training with various neural network configurations, we can consider including these types of experiments in the revised release of the package to provide the user the opportunity to customize his experience with the package and to have an easier workflow.