charlesq34 / pointnet

PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation
Other
4.76k stars 1.45k forks source link

Training on Tensorflow2.0 Implementation Using ModelNet40 #233

Open YoungsonZhao opened 4 years ago

YoungsonZhao commented 4 years ago

I re-implement pointnet using tensorflow 2.0, and I try to train the model using modelnet40 datase for classification. The training loss will decrease along apochs, but the accuracy dosen't change, no matter I use data augmentation or not. Could anyone help me to check what's wrong with my model? The model is attached. "python train.py" starts the training process. https://github.com/YoungsonZhao/pointnet-tf2 pointnet-tf2.tar.gz

Epoch: 5
Training loss at step 0: 1.6405847072601318, accuracy: 0.0576171875
Training loss at step 100: 1.4399186372756958, accuracy: 0.057771891355514526
Training loss at step 200: 2.01971435546875, accuracy: 0.058345966041088104
Training loss at step 300: 1.6832635402679443, accuracy: 0.05788647383451462
Training accuracy at epoch 5: 0.057795971632003784
Validation accuracy at epoch 5: 0.04608013108372688
Epoch: 6
Training loss at step 0: 1.5728652477264404, accuracy: 0.0478515625
Training loss at step 100: 1.714368224143982, accuracy: 0.05915454775094986
Training loss at step 200: 1.465632438659668, accuracy: 0.05887068435549736
Training loss at step 300: 1.528968334197998, accuracy: 0.0583309531211853
Training accuracy at epoch 6: 0.05832040682435036
Validation accuracy at epoch 6: 0.04566596820950508
Epoch: 7
Training loss at step 0: 1.723996877670288, accuracy: 0.048828125
Training loss at step 100: 1.275124430656433, accuracy: 0.05951229855418205
Training loss at step 200: 1.0835552215576172, accuracy: 0.05855488032102585
Training loss at step 300: 0.9971515536308289, accuracy: 0.0583147332072258
Training accuracy at epoch 7: 0.05819009244441986
Validation accuracy at epoch 7: 0.04468472674489021
Epoch: 8
Training loss at step 0: 1.2365074157714844, accuracy: 0.0654296875
Training loss at step 100: 1.1995859146118164, accuracy: 0.05848739296197891
Training loss at step 200: 1.1176003217697144, accuracy: 0.058865826576948166
Training loss at step 300: 1.2754836082458496, accuracy: 0.05892143398523331
Training accuracy at epoch 8: 0.05893701687455177
Validation accuracy at epoch 8: 0.046150218695402145
Epoch: 9
Training loss at step 0: 1.247464656829834, accuracy: 0.0703125
Training loss at step 100: 1.2772135734558105, accuracy: 0.05962832644581795
Training loss at step 200: 1.0806488990783691, accuracy: 0.05897757411003113
Training loss at step 300: 1.0087261199951172, accuracy: 0.05990773066878319
Training accuracy at epoch 9: 0.0599127858877182
Validation accuracy at epoch 9: 0.04491410776972771
Epoch: 10
Training loss at step 0: 1.3335895538330078, accuracy: 0.056640625
Training loss at step 100: 1.100531816482544, accuracy: 0.05933825671672821
Training loss at step 200: 0.9509021639823914, accuracy: 0.059526585042476654
Training loss at step 300: 1.2244904041290283, accuracy: 0.05994341894984245
Training accuracy at epoch 10: 0.06009077653288841
Validation accuracy at epoch 10: 0.046672698110342026
Epoch: 11
Training loss at step 0: 1.189863920211792, accuracy: 0.0576171875
Training loss at step 100: 0.9178283214569092, accuracy: 0.0609142929315567
Training loss at step 200: 1.0863854885101318, accuracy: 0.06125621870160103 Training loss at step 300: 0.7524850368499756, accuracy: 0.06356091797351837
Training accuracy at epoch 28: 0.06358383595943451
Validation accuracy at epoch 28: 0.04680650308728218
Epoch: 29
Training loss at step 0: 0.48567643761634827, accuracy: 0.0595703125
Training loss at step 100: 0.6366485357284546, accuracy: 0.06379564106464386
Training loss at step 200: 0.49817636609077454, accuracy: 0.06368061900138855
Training loss at step 300: 0.4746086597442627, accuracy: 0.06302883476018906
Training accuracy at epoch 29: 0.06306575238704681
Validation accuracy at epoch 29: 0.04655800759792328
Epoch: 30
Training loss at step 0: 0.5983939170837402, accuracy: 0.0595703125
Training loss at step 100: 0.4569290280342102, accuracy: 0.06137840449810028
Training loss at step 200: 0.6278259754180908, accuracy: 0.06252915412187576
Training loss at step 300: 0.935262143611908, accuracy: 0.0630742609500885
Training accuracy at epoch 30: 0.0629672259092331
Validation accuracy at epoch 30: 0.04646880552172661
Epoch: 31
Training loss at step 0: 0.6786514520645142, accuracy: 0.078125
Training loss at step 100: 0.44244590401649475, accuracy: 0.062200263142585754
Training loss at step 200: 1.0492966175079346, accuracy: 0.062048155814409256
Training loss at step 300: 0.4955748915672302, accuracy: 0.06287959218025208
Training accuracy at epoch 31: 0.06284327059984207
Validation accuracy at epoch 31: 0.04568508639931679
Epoch: 32
Training loss at step 0: 0.41175544261932373, accuracy: 0.052734375
Training loss at step 100: 0.6329934000968933, accuracy: 0.0629931166768074
Training loss at step 200: 0.8100867867469788, accuracy: 0.06271377205848694
Training loss at step 300: 0.6582640409469604, accuracy: 0.0636485144495964
Training accuracy at epoch 32: 0.06370460987091064
Validation accuracy at epoch 32: 0.046411458402872086
Epoch: 33
Training loss at step 0: 0.7936702966690063, accuracy: 0.0625
Training loss at step 100: 0.8655977249145508, accuracy: 0.06270305067300797
Training loss at step 200: 0.6217102408409119, accuracy: 0.06243683770298958
Training loss at step 300: 0.4890812635421753, accuracy: 0.063090480864048
Training accuracy at epoch 33: 0.0630435049533844
Validation accuracy at epoch 33: 0.04663446918129921
Epoch: 34
Training loss at step 0: 0.6670365929603577, accuracy: 0.0576171875
Training loss at step 100: 0.5799189209938049, accuracy: 0.06272238492965698
Training loss at step 200: 0.85627681016922, accuracy: 0.06303929537534714
Training loss at step 300: 0.8811132311820984, accuracy: 0.06325594335794449
Training accuracy at epoch 34: 0.0633549913764
Validation accuracy at epoch 34: 0.04697216674685478 Training loss at step 300: 0.6928768754005432, accuracy: 0.06322025507688522
Training accuracy at epoch 36: 0.06309753656387329
Validation accuracy at epoch 36: 0.04523269459605217
Epoch: 37
Training loss at step 0: 1.14579176902771, accuracy: 0.068359375
Training loss at step 100: 0.4360091984272003, accuracy: 0.06450147181749344
Training loss at step 200: 0.5804656744003296, accuracy: 0.06384094804525375
Training loss at step 300: 0.5167725086212158, accuracy: 0.06349927186965942
Training accuracy at epoch 37: 0.06364422291517258
Validation accuracy at epoch 37: 0.04645606130361557
Epoch: 38
Training loss at step 0: 0.6681810617446899, accuracy: 0.0576171875
Training loss at step 100: 0.8536072969436646, accuracy: 0.06279006600379944
Training loss at step 200: 0.4532054662704468, accuracy: 0.06368061900138855
Training loss at step 300: 0.6386659741401672, accuracy: 0.06388535350561142
Training accuracy at epoch 38: 0.06378089636564255
Validation accuracy at epoch 38: 0.04643694683909416
Epoch: 39
Training loss at step 0: 0.9262869358062744, accuracy: 0.05078125
Training loss at step 100: 0.7076185345649719, accuracy: 0.06333152949810028
Training loss at step 200: 0.164290651679039, accuracy: 0.06422477215528488
Training loss at step 300: 0.5440613031387329, accuracy: 0.06464129686355591
Training accuracy at epoch 39: 0.06462635099887848
Validation accuracy at epoch 39: 0.045532163232564926
Epoch: 40
Training loss at step 0: 0.5792933702468872, accuracy: 0.0751953125
Training loss at step 100: 0.6696884632110596, accuracy: 0.06287708878517151
Training loss at step 200: 0.41216954588890076, accuracy: 0.06326764822006226
Training loss at step 300: 0.6747180819511414, accuracy: 0.06388860195875168
Training accuracy at epoch 40: 0.06383810192346573
Validation accuracy at epoch 40: 0.04674915969371796
Epoch: 41
Training loss at step 0: 0.2500072121620178, accuracy: 0.0673828125
Training loss at step 100: 0.47141939401626587, accuracy: 0.06444345414638519
Training loss at step 200: 0.3660518527030945, accuracy: 0.06407415866851807
Training loss at step 300: 0.5507185459136963, accuracy: 0.06368096172809601
Training accuracy at epoch 41: 0.06361879408359528
Validation accuracy at epoch 41: 0.04612473398447037
Epoch: 42
Training loss at step 0: 0.6518843770027161, accuracy: 0.0546875
Training loss at step 100: 0.5514909029006958, accuracy: 0.06321550160646439
Training loss at step 200: 0.370906263589859, accuracy: 0.06391868740320206
Training loss at step 300: 0.40502822399139404, accuracy: 0.06487489491701126
Training accuracy at epoch 42: 0.06479480117559433
Validation accuracy at epoch 42: 0.0459526963531971
Epoch: 43
Training loss at step 0: 0.23904713988304138, accuracy: 0.0634765625

YoungsonZhao commented 4 years ago

Error is fixed, it is because tf.one_hot() generates extra dimension, I use tf.squeeze to fix this bug

Yubo-Veronica-Chen commented 6 months ago

@YoungsonZhao Hi, I got the same error, but I didnot find the tf.on_hot() has been used in the code, could you please give more infomation about this issue and solutions? thank you so much!!