gnahtb / RealFL

Implement basic steps in a model-centric federated learning model
The Unlicense
0 stars 1 forks source link

Add health dataset to the FL (incomplete) #22

Closed tem556 closed 1 year ago

tem556 commented 1 year ago

Brief explanation of changes made:

tem556 commented 1 year ago

Currently, the issue takes place on the client's side during the training stage. The specific error is below:

Exception in thread "Thread-4" java.lang.IllegalStateException: Invalid input, does not match configuration: expected [minibatch, numChannels=10, inputHeight=7, inputWidth=7]  but got input array of shape [128, 10, 26, 26]
    at org.deeplearning4j.nn.conf.preprocessor.CnnToFeedForwardPreProcessor.preProcess(CnnToFeedForwardPreProcessor.java:98)
    at org.deeplearning4j.nn.multilayer.MultiLayerNetwork.computeGradientAndScore(MultiLayerNetwork.java:2794)
    at org.deeplearning4j.nn.multilayer.MultiLayerNetwork.computeGradientAndScore(MultiLayerNetwork.java:2742)
    at org.deeplearning4j.optimize.solvers.BaseOptimizer.gradientAndScore(BaseOptimizer.java:174)
    at org.deeplearning4j.optimize.solvers.StochasticGradientDescent.optimize(StochasticGradientDescent.java:61)
    at org.deeplearning4j.optimize.Solver.optimize(Solver.java:52)
    at org.deeplearning4j.nn.multilayer.MultiLayerNetwork.fitHelper(MultiLayerNetwork.java:1753)
    at org.deeplearning4j.nn.multilayer.MultiLayerNetwork.fit(MultiLayerNetwork.java:1674)
    at org.deeplearning4j.nn.multilayer.MultiLayerNetwork.fit(MultiLayerNetwork.java:1661)
    at com.bnnthang.fltestbed.commonutils.clients.Cifar10TrainingWorker.run(Cifar10TrainingWorker.java:64)
java.lang.NullPointerException
    at com.bnnthang.fltestbed.commonutils.clients.BaseClientOperations.handleReport(BaseClientOperations.java:98)
    at com.bnnthang.fltestbed.commonutils.clients.BaseClient.coordinate(BaseClient.java:121)
    at com.bnnthang.fltestbed.commonutils.clients.BaseClient.serve(BaseClient.java:84)
    at com.bnnthang.fltestbed.commonutils.clients.BaseClient.run(BaseClient.java:55)

The model seems to work correctly when used in outside of the FL setting. So far, I have verified that the image received by the clients' side is indeed as required. The issue could be in how the model is loaded. It may also have to with how the dataset is used.