Tensorflow:验证预测对于每个图像都是一样的

2024-06-23 20:04:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下问题。在

我在试着用tensorflow训练一个3d CNN。在三组数据中,我分别对数据进行了验证和训练。在

主要的问题是,当我在训练了5个周期后测试验证集时,5幅图像的模型输出几乎相同。 (这是没有任何softmax的最后一层的输出)

2018-04-17 23:30:35.134318 Prediction: [[0.8185656  2.7571523 ]                     
[0.8200048  2.7590456 ]
 [0.8185656  2.7571523 ]
 [0.8200048  2.7590458 ]
 [0.7751368  2.7532804 ]
 [0.82061136 2.7588618 ]
 [0.8130686  2.7821052 ]
 [0.83537185 2.7514493 ]
 [0.8200041  2.7590454 ]
 [0.81701267 2.7519925 ]
 [0.8424163  2.8674953 ]
 [0.82000506 2.7590454 ]
 [0.81999433 2.7590487 ]
 [0.81701267 2.7519925 ]

然而,如果我对训练集做同样的事情,我会得到一个传统的预测。在

我已经全面检查了数据集,两个都是正确的,条件相同。在

这是我用来构建模型和进行培训的模式:

Cnn3DMRI类(对象):

^{pr2}$

我已经试过了设置随机种子(1)但未见校正

有人知道吗?在

非常感谢

编辑日期:2018年4月22日:

要分类的数据是150x150x40像素的三维图像,属于双类问题。我总共有400张图片,大概是每节课的一半。我已经在训练(75%)、验证(10%)和测试(15%)中分离了数据集

编辑2: 我把我的模型简化了一点。向上看

还要提到我们只有两个班

我试过另一个检查,我训练我的模型只有20张图片。看看是否获得0成本。在

125个时期后的结果:

2018-04-24 24 23:58:58:24.992421新纪元损失均值:[4549.955454141853,1854.656537470817566,817.4076923541704,686.83686872729054928,687.7348744268759,704.9468081304817,483.695278347935353559260.22993045549304,272.66828216880837817,116.575152235748815,97.8609470454543848,90.431521521521319176,132.54018089070996,69.69.6969.696969.6952783434353535353535353535353535355748815,97.6259533921887,57.412255316681694,746618418418464057735、70.9951506803565、55.75798599421978、44.1441440307702692、38.901107819750905、49.7559472024444408、52.6321079954505、37.70595762133598、42.07099115010351、29.01994925737381、28.3651235450756073、31.93120799213648、43.985555432828282905、33.242121212139448944、36.575130683838339、28.828659545454282828282905、33.2421212121212139448944、36.57513657513061538339、28.28.82865953346,29.847569406032562,24.078316539525986,31.6309253163363573,30.54301103354156,26.180602401499498,32.867802231446028,25.4288934171711998,29.355557574712868,26.2695534677267075,24.921811810917556286,27.15281054377556 56,27.34343381822109222,24.293660208582878,28.2121779094552994,25.0762666673737358,21.65099133335511208,25.75272790447649,23.42476060204204204234242424757373775623773737358,21.650991335511208,25.7527272790279027905822,28.350880563259125,22.57907184958458,21.601420983672142,25.28281284808911255,25.550641894340515,22.44445772329521118,27.660063683986664,21.86393914296031,25.722180172801018,24.00674747588515228,21.46472266316414,26.599679857492447,23.52132132275700569,26.178666640137434,24.84262679132101821822,25.263964444753456,22.73093848494205475,22.7874075174333316714,24.8426262629232101822,25.263965144753456,22.730939393849420575,22.7874023.58866274356842,25.351682364940643,23.8527232353887558,23.884423823837065697,24.685379207713424247,22.55106496810913,25.993630777263947,21.9673226624727225,22.651918083429337,21.91003155708313,23.78202101585882492,21.5677246451378787,22.13087919354544388,21.33636969752883391,25.6244444444362335,23.2634747571855,22.370920971798325,22.37091407179798325,22.782022022026244444444444444444444362335,23.26347474747571855,614411562681198,24.962509214878082,22.121410965919495,20.644148647785187187,24.4721772617912292,21.622929914657135,21.71997878988170624,21.72349101305008,21.729621721779780064,22.0908261153755188,21.44688707590103,22.3481727299246788,22.932262262480255894,22.6354744444343567,22.1306095123291,22.1627728289390564,22.63544444343567,22.1306095123291,22.1627777289390564,22.8377771103620529,24.171717175757575757575757272721350164413,22.025538682937622,21.3390597105062625、22.16904343481349945、24.614955246448517、22.83159503340721、21.434519022270317、21.545454497337343413、22.889380514646217355、24.1686215599674225、21.947510302066803、22.3024363694782257、22.3814545454586982727、22.50488563483772、22.616577505050677272、22.616577505066537、22.28881700992558423、21.3007012307676439、22.48487222.487563686808272727、22、22.288817009925423 9792048931122,21.885000944137573,21.343613982200623、23.042116808041687、24.00969059765339、21.8588485121727、22.199619591236115] 2018-04-24 23:58:24.992694北纬纪元:125

每层打印输出:

转换1:[[[0.0981627107 0.100793235 0.0934509188]]]…]

max1:[[0.102978 0.107030481 0.0977560952]]]…]

max2:[[[[0 0 0.00116439909]]]…]

整形:[[0 0 0.00116439909]…]

基金:[[0.01167579 0.182256863 0.107154548]…]

fc2:[[0.773868561 0.364259362 0]…]

输出:[[0.16590938-0.255491495][0.16590938]…]

conv1:[[0.0981602222 0.100800745 0.0934513509]]]…]

max1:[[0.102975294 0.107038349 0.0977560282]]]…]

max2:[[[0 0 0.000874094665]]]…]

重塑:[[0 0.000874094665]…]

fc:[[0.0117974132 0.182980478 0.106876813]…]

fc2:[[0.774896204 0.36372292 0]…]

输出:[[0.129838273-0.210624188][0.129838273]…]

难道125个时代不应该适合超过60个样品吗?

知道发生什么事了吗?


Tags: 数据模型图像编辑tensorflow图片事情cnn
1条回答
网友
1楼 · 发布于 2024-06-23 20:04:51

这更多的是一个不符合评论限制的评论。在

正如我之前所说,我看不出有什么明显的错误。你可能需要做一些调试。如果pre softmax的输出完全相同,那么它可能是某个地方的bug,您可以通过找到您可能不同的输入导致同一层输出的确切位置来找到它。在

如果pre softmax输出很接近,但不完全相同,则很可能是典型的过度拟合问题。你提到你只有300个训练例子-这是非常少的训练整个网络(没有使用一些预先训练的权重)。你的网络只是“记忆”了300个训练例子,根本没有推广到验证集。在

编辑04/23/18: 所以,问题不只是验证?我把你的“如果我对训练集做同样的处理,我得到了一个常规的预测”,意思是训练图像被分类得很好。如果对训练图像得到相同的预测,很可能是数据或损失或预测计算错误。我没有发现任何东西,我猜你需要调试。您可能会发现“急切执行”对于这个-https://www.tensorflow.org/get_started/eager很有用。如果您像示例(https://github.com/tensorflow/tensorflow/tree/3f4662e7ca8724f760db4a5ea6e241c99e66e588/tensorflow/contrib/eager/python/examples)那样组织模型,那么您应该能够在常规的tensorflow图执行中使用相同的代码。在

相关问题 更多 >

    热门问题