deepcaps icon indicating copy to clipboard operation
deepcaps copied to clipboard

The practicality of this network

Open chengjianhong opened this issue 5 years ago • 8 comments

@brjathu Hi, Thanks for your great work. I want to know whether this network is suitable for two-category image data, such as cat and dog images with shape (64,64,3) ? I train the model with my prevate medical image (two class), It happens the following strange loss, and the accuracy is always not improved. Can to give me some advices about it?

Epoch 46/500
107/106 [==============================] - 15s 137ms/step - loss: 0.6319 - capsnet_loss: 0.2150 - decoder_loss: 1.0422 - capsnet_acc: 0.4690 - val_loss: 0.6452 - val_capsnet_loss: 0.2110 - val_decoder_loss: 1.0853 - val_capsnet_acc: 0.4788
Epoch 47/500
107/106 [==============================] - 15s 136ms/step - loss: 0.6323 - capsnet_loss: 0.2158 - decoder_loss: 1.0413 - capsnet_acc: 0.4670 - val_loss: 0.6449 - val_capsnet_loss: 0.2110 - val_decoder_loss: 1.0846 - val_capsnet_acc: 0.4788
Epoch 48/500
107/106 [==============================] - 15s 138ms/step - loss: 0.6331 - capsnet_loss: 0.2150 - decoder_loss: 1.0453 - capsnet_acc: 0.4690 - val_loss: 0.6457 - val_capsnet_loss: 0.2110 - val_decoder_loss: 1.0867 - val_capsnet_acc: 0.4788
Epoch 49/500
107/106 [==============================] - 15s 139ms/step - loss: 0.6330 - capsnet_loss: 0.2158 - decoder_loss: 1.0428 - capsnet_acc: 0.4670 - val_loss: 0.6446 - val_capsnet_loss: 0.2110 - val_decoder_loss: 1.0838 - val_capsnet_acc: 0.4788
Epoch 50/500
107/106 [==============================] - 15s 136ms/step - loss: 0.6324 - capsnet_loss: 0.2158 - decoder_loss: 1.0415 - capsnet_acc: 0.4670 - val_loss: 0.6435 - val_capsnet_loss: 0.2110 - val_decoder_loss: 1.0811 - val_capsnet_acc: 0.4788
Epoch 51/500
107/106 [==============================] - 15s 140ms/step - loss: 0.6295 - capsnet_loss: 0.2150 - decoder_loss: 1.0361 - capsnet_acc: 0.4690 - val_loss: 0.6431 - val_capsnet_loss: 0.2110 - val_decoder_loss: 1.0802 - val_capsnet_acc: 0.4788
Epoch 52/500
107/106 [==============================] - 15s 138ms/step - loss: 0.6317 - capsnet_loss: 0.2167 - decoder_loss: 1.0377 - capsnet_acc: 0.4650 - val_loss: 0.6433 - val_capsnet_loss: 0.2110 - val_decoder_loss: 1.0807 - val_capsnet_acc: 0.4788
Epoch 53/500
107/106 [==============================] - 15s 136ms/step - loss: 0.6274 - capsnet_loss: 0.2150 - decoder_loss: 1.0309 - capsnet_acc: 0.4690 - val_loss: 0.6460 - val_capsnet_loss: 0.2110 - val_decoder_loss: 1.0874 - val_capsnet_acc: 0.4788
Epoch 54/500
107/106 [==============================] - 15s 138ms/step - loss: 0.6333 - capsnet_loss: 0.2175 - decoder_loss: 1.0395 - capsnet_acc: 0.4629 - val_loss: 0.6434 - val_capsnet_loss: 0.2110 - val_decoder_loss: 1.0809 - val_capsnet_acc: 0.4788
Epoch 55/500
107/106 [==============================] - 15s 137ms/step - loss: 0.6316 - capsnet_loss: 0.2158 - decoder_loss: 1.0394 - capsnet_acc: 0.4670 - val_loss: 0.6433 - val_capsnet_loss: 0.2110 - val_decoder_loss: 1.0806 - val_capsnet_acc: 0.4788
Epoch 56/500
107/106 [==============================] - 15s 136ms/step - loss: 0.6315 - capsnet_loss: 0.2150 - decoder_loss: 1.0412 - capsnet_acc: 0.4690 - val_loss: 0.6440 - val_capsnet_loss: 0.2110 - val_decoder_loss: 1.0823 - val_capsnet_acc: 0.4788
Epoch 57/500
107/106 [==============================] - 15s 139ms/step - loss: 0.6295 - capsnet_loss: 0.2158 - decoder_loss: 1.0341 - capsnet_acc: 0.4670 - val_loss: 0.6434 - val_capsnet_loss: 0.2110 - val_decoder_loss: 1.0808 - val_capsnet_acc: 0.4788
Epoch 58/500
107/106 [==============================] - 14s 135ms/step - loss: 0.6300 - capsnet_loss: 0.2158 - decoder_loss: 1.0355 - capsnet_acc: 0.4670 - val_loss: 0.6428 - val_capsnet_loss: 0.2110 - val_decoder_loss: 1.0794 - val_capsnet_acc: 0.4788
Epoch 59/500
107/106 [==============================] - 15s 136ms/step - loss: 0.6305 - capsnet_loss: 0.2150 - decoder_loss: 1.0388 - capsnet_acc: 0.4690 - val_loss: 0.6430 - val_capsnet_loss: 0.2110 - val_decoder_loss: 1.0800 - val_capsnet_acc: 0.4788
Epoch 60/500
107/106 [==============================] - 14s 134ms/step - loss: 0.6297 - capsnet_loss: 0.2158 - decoder_loss: 1.0347 - capsnet_acc: 0.4670 - val_loss: 0.6429 - val_capsnet_loss: 0.2110 - val_decoder_loss: 1.0796 - val_capsnet_acc: 0.4788
Epoch 61/500
107/106 [==============================] - 15s 139ms/step - loss: 0.6319 - capsnet_loss: 0.2167 - decoder_loss: 1.0382 - capsnet_acc: 0.4650 - val_loss: 0.6451 - val_capsnet_loss: 0.2110 - val_decoder_loss: 1.0852 - val_capsnet_acc: 0.4788
Epoch 62/500
107/106 [==============================] - 14s 135ms/step - loss: 0.6306 - capsnet_loss: 0.2158 - decoder_loss: 1.0368 - capsnet_acc: 0.4670 - val_loss: 0.6430 - val_capsnet_loss: 0.2110 - val_decoder_loss: 1.0799 - val_capsnet_acc: 0.4788
Epoch 63/500
107/106 [==============================] - 15s 138ms/step - loss: 0.6267 - capsnet_loss: 0.2142 - decoder_loss: 1.0314 - capsnet_acc: 0.4710 - val_loss: 0.6425 - val_capsnet_loss: 0.2110 - val_decoder_loss: 1.0787 - val_capsnet_acc: 0.4788
Epoch 64/500
107/106 [==============================] - 15s 137ms/step - loss: 0.6302 - capsnet_loss: 0.2167 - decoder_loss: 1.0339 - capsnet_acc: 0.4650 - val_loss: 0.6424 - val_capsnet_loss: 0.2110 - val_decoder_loss: 1.0783 - val_capsnet_acc: 0.4788
Epoch 65/500
107/106 [==============================] - 15s 137ms/step - loss: 0.6321 - capsnet_loss: 0.2158 - decoder_loss: 1.0406 - capsnet_acc: 0.4670 - val_loss: 0.6425 - val_capsnet_loss: 0.2110 - val_decoder_loss: 1.0787 - val_capsnet_acc: 0.4788

chengjianhong avatar Jun 26 '19 13:06 chengjianhong

Hi, extremely sorry for the delay in replying the post, as I have to reproduce the problem in my side.

Theoretically, It should work, but I also found that the accuracy is still around 50% and not converging. I will keep investigate this problem and keep you posted.

brjathu avatar Jul 04 '19 07:07 brjathu

@brjathu Thanks, on which dataset did you reproduce this problem? Does it is cat and dog images ?

chengjianhong avatar Jul 04 '19 07:07 chengjianhong

@chengjianhong yes, If you need I can share the code.

brjathu avatar Jul 04 '19 09:07 brjathu

@brjathu ok, please share it and send my email. [email protected]

chengjianhong avatar Jul 04 '19 09:07 chengjianhong

Hi, @brjathu this is a great work! I have been also facing a similar issue when doing binary classification. The the fit does not seem to converge. I did some digging and found that the gradients vanish for DeepCapsNet while BaseCapsNet performs fine. It also seems that the problem of vanishing gradients is somehow related to the which keras you are using. It works fine if you use the external keras but gradients vanish when using tf.keras. I eventually want to use TF2 and hence want to move to using tf.keras rather than the external Keras. Will be helpful to know your thoughts about this. Thanks!

biprateep avatar Jun 09 '20 03:06 biprateep

Hi, @biprateep Thank you! I am not sure what could be wrong with different versions if you can share a TF2 implementation, I can run it and see any issues. Or else, I am working on a PyTorch version, if you are interested I can share it with you!

About the binary classification, maybe adding a tried neither class might help (Capsule paper also use the same idea). I will keep investigating and update here!

brjathu avatar Jun 19 '20 13:06 brjathu

Hi, is the PyTorch implementation finished? I would be grateful if you could share with me the PyTorch version.

amir-ghz avatar May 08 '22 05:05 amir-ghz

Hi, @biprateep Thank you! I am not sure what could be wrong with different versions if you can share a TF2 implementation, I can run it and see any issues. Or else, I am working on a PyTorch version, if you are interested I can share it with you!

About the binary classification, maybe adding a tried neither class might help (Capsule paper also use the same idea). I will keep investigating and update here!

Hi, thank you for your work! Do you have that Pytorch implementation finished by any chance? I would appreciate it if you could share it. Thank you.

TolerantChief avatar Mar 30 '23 22:03 TolerantChief