神经网络训练时,损失值在0.1波动,不再下降,是否认为已经收敛?

在利用卷积神经网络训练一组数据时,损失值从3.7左右下降到0.15左右,之后损失值不再下降,这种情况是否可以认为已经收敛?但此时的测试集准确率只有92%左右,如果想要继续提高准确率,应该从哪方面入手:数据集本身?网络模型?训练参数?还是其它方面?
这是训练的两张图:图片说明图片说明

1个回答

一个是本身数据的可学习性,一个是模型的问题。一个是网络调参不好。
打一个比方,如果仅仅用每天的天气数据预测每天的股票价格,怎么预测都误差很大,这个就是可学习性差。可学习性差表现为过拟合。
而用一个只有单层10个神经元的网络去判别图片,这个就是模型的问题。模型不好主要表现在学不动,不收敛。
还有一个就是网络调参,比如说虽然你的网络复杂性够了,数据也OK,但是优化器不好,导致梯度消失,过早收敛,这个你要换优化器的算法,必要的时候可以用网格搜索的方式手动调参。

weixin_40766438
老韩Han 回复xk1010: 博主后来有找到什么办法吗,我也遇到了同类问题,训练集准确度大概在92左右,不下降了,就是有些个别类学习的精度很低,可能和初始数据量不同,不过给了一个初始权重,不知道博主有没有什么好的办法
3 个月之前 回复
weixin_43987964
xk1010 2.看训练时的两张图这应该是能够收敛的,梯度下降趋势感觉也很平滑没有打的分布。现在怀疑是不是某些样本分布类似,而模型又无法学习到细微的差别。
6 个月之前 回复
weixin_43987964
xk1010 1.数据可学性应该没问题,不过存在某两类样本分布相似,仅存在细微差别。
6 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
深度神经网络训练过程中,损失函数的值没有变化

我做了一个很简单的全连接神经网络,一个输入层:输入一个三维的 参数,3个隐藏层,一个输出层:输出一个5位分类结果(一个one-hot数据,类似[1,0,0,0,0]属于第一类)。 使用的损失函数的交叉熵函数,使用梯度下降法。但是当我输出loss函数的值的时候,发现训练过程中,loss的值一直没有变化。我无论如何调整隐藏层神经元个数,都没有用。 请问出现问题的原因有哪些呢? 我把代码贴出来,大家看看呢,代码中我试验过很多包括隐藏层数目,这里的是5层,1,2,3,4,5,层都试过,都不对: ``` # -*- coding: utf-8 -*- """ Created on Mon Jul 3 23:03:28 2017 @author: sony """ # -*- coding: utf-8 -*- """ Created on Mon Jul 3 22:39:30 2017 @author: sony """ # -*- coding: utf-8 -*- """ Created on Mon Jul 3 22:03:49 2017 @author: sony """ import tensorflow as tf from numpy.random import RandomState batch_size = 8 w1 = tf.Variable(tf.random_normal([3,300],stddev = 1,seed = 1)) w2 = tf.Variable(tf.random_normal([300,300],stddev = 1,seed = 1)) w3 = tf.Variable(tf.random_normal([300,300],stddev = 1,seed = 1)) w4 = tf.Variable(tf.random_normal([300,300],stddev = 1,seed = 1)) w5 = tf.Variable(tf.random_normal([300,300],stddev = 1,seed = 1)) w6 = tf.Variable(tf.random_normal([300,5],stddev = 1,seed = 1)) basis1 = tf.Variable(tf.zeros([1, 300]) + 0.1) basis2 = tf.Variable(tf.zeros([1, 300]) + 0.1) basis3 = tf.Variable(tf.zeros([1, 300]) + 0.1) basis4 = tf.Variable(tf.zeros([1, 300]) + 0.1) basis5 = tf.Variable(tf.zeros([1, 300]) + 0.1) basis6 = tf.Variable(tf.zeros([1, 5]) + 0.1) x = tf.placeholder(tf.float32,shape=(None,3)) y_= tf.placeholder(tf.float32,shape=(None,5)) a = tf.matmul(x,w1)+basis1 a = tf.nn.relu(a) b = tf.matmul(a,w2)+basis2 b = tf.nn.relu(b) c = tf.matmul(b,w3)+basis3 c = tf.nn.relu(c) d = tf.matmul(c,w4)+basis4 d = tf.nn.relu(d) e = tf.matmul(d,w5)+basis5 e = tf.nn.relu(e) y = tf.matmul(e,w6)+basis6 y = tf.nn.softmax(y) cross_entropy = -tf.reduce_mean(y_*tf.log(tf.clip_by_value(y,1e-10,1.0))) train_step = tf.train.AdamOptimizer(0.001).minimize(cross_entropy) #rdm = RandomState(1) #dataset_size = 128 #X = rdm.rand(dataset_size,2) #Y = [ [int(x1+x2<1)] for (x1,x2) in X] f2 = open("C:/Users/sony/Desktop/points(7).txt") X = [] Y = [] D = f2.read(); rows2 = D.split('\n') for row2 in range(len(rows2)): split_row2 = rows2[row2].split() if split_row2: temp = [] templabel = [] i_label = int(split_row2[0]) for k in range(5):#每一行数据分拆 if k == i_label:#输入标签数据,这里的是表示one hot数据 templabel.append(1) else: templabel.append(0) Y.append(templabel) for i in range(3,6): #if(int(split_row2[i]) - 0 < 1e-3): # split_row2[i] = 1 temp.append(float(split_row2[i])) X.append(temp) with tf.Session() as sess: init_op = tf.global_variables_initializer() sess.run(init_op) #print(w1) #print(w2) dataset_size = len(X) STEPS = 500000 for i in range(STEPS): start = (i*batch_size)%dataset_size end = min(start+batch_size,dataset_size) sess.run(train_step,feed_dict={x:X[start:end],y_:Y[start:end]}) if i %100 == 0: total_cross = sess.run(cross_entropy,feed_dict={x:X,y_:Y}) print("After %d training ,loss is %g"%(i,total_cross)) #print(w1) #print(w2) ```

训练网络时损失值一直震荡

在训练网络时,损失值一直震荡,结果如下 检查了数据,数据没有问题,想问一下是什么原因引起的 学习率lr=1e-6,batchsize=4,网络是一个小型的VGG,如下 ``` model = models.Sequential() inputShape = input_shape chanDim = -1 # chanel last # CONV => RELU => POOL model.add(layers.Conv2D(32, (3, 3), padding="same", input_shape=inputShape)) model.add(Activation("relu")) model.add(BatchNormalization(axis=chanDim)) model.add(MaxPooling2D(pool_size=(3, 3))) model.add(Dropout(0.25)) # (CONV => RELU) * 2 => POOL model.add(Conv2D(64, (3, 3), padding="same")) model.add(Activation("relu")) model.add(BatchNormalization(axis=chanDim)) model.add(Conv2D(64, (3, 3), padding="same")) model.add(Activation("relu")) model.add(BatchNormalization(axis=chanDim)) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Dropout(0.25)) # (CONV => RELU) * 2 => POOL model.add(Conv2D(128, (3, 3), padding="same")) model.add(Activation("relu")) model.add(BatchNormalization(axis=chanDim)) model.add(Conv2D(128, (3, 3), padding="same")) model.add(Activation("relu")) model.add(BatchNormalization(axis=chanDim)) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Dropout(0.25)) # first (and only) set of FC => RELU layers model.add(Flatten()) model.add(Dense(1024))#原来是1024 model.add(Activation("relu")) model.add(BatchNormalization()) model.add(Dropout(0.5)) model.add(layers.Dense(classes, activation='sigmoid')) return model ``` ``` Epoch 1/10 : 1/77 .........train_loss:1.8660999536514282,train_acc:0.25,val_loss:0.0,val_acc:1.0 2/77 .........train_loss:0.3743000030517578,train_acc:0.75,val_loss:0.0006000000284984708,val_acc:1.0 3/77 .........train_loss:0.9629999995231628,train_acc:0.25,val_loss:0.0003000000142492354,val_acc:1.0 4/77 .........train_loss:0.9380999803543091,train_acc:0.75,val_loss:0.02290000021457672,val_acc:1.0 5/77 .........train_loss:1.3630000352859497,train_acc:0.25,val_loss:0.10599999874830246,val_acc:1.0 6/77 .........train_loss:1.1638000011444092,train_acc:0.25,val_loss:0.061000000685453415,val_acc:1.0 7/77 .........train_loss:0.6043999791145325,train_acc:0.5,val_loss:0.1623000055551529,val_acc:1.0 8/77 .........train_loss:0.271699994802475,train_acc:1.0,val_loss:0.15219999849796295,val_acc:1.0 9/77 .........train_loss:0.6158000230789185,train_acc:0.75,val_loss:0.17030000686645508,val_acc:1.0 10/77 .........train_loss:1.5370999574661255,train_acc:0.75,val_loss:0.16339999437332153,val_acc:1.0 11/77 .........train_loss:0.9704999923706055,train_acc:0.75,val_loss:0.15410000085830688,val_acc:1.0 12/77 .........train_loss:0.7396000027656555,train_acc:0.5,val_loss:0.1680999994277954,val_acc:1.0 13/77 .........train_loss:1.1079000234603882,train_acc:0.5,val_loss:0.18019999563694,val_acc:1.0 14/77 .........train_loss:0.6898999810218811,train_acc:0.5,val_loss:0.1656000018119812,val_acc:1.0 15/77 .........train_loss:0.3553999960422516,train_acc:0.75,val_loss:0.13729999959468842,val_acc:1.0 16/77 .........train_loss:0.9595999717712402,train_acc:0.75,val_loss:0.13079999387264252,val_acc:1.0 17/77 .........train_loss:0.6948999762535095,train_acc:0.75,val_loss:0.131400004029274,val_acc:1.0 18/77 .........train_loss:0.2732999920845032,train_acc:1.0,val_loss:0.13779999315738678,val_acc:1.0 19/77 .........train_loss:0.5321999788284302,train_acc:0.75,val_loss:0.12309999763965607,val_acc:1.0 20/77 .........train_loss:1.1571999788284302,train_acc:0.5,val_loss:0.11800000071525574,val_acc:1.0 21/77 .........train_loss:1.3125,train_acc:0.5,val_loss:0.10040000081062317,val_acc:1.0 22/77 .........train_loss:0.7470999956130981,train_acc:0.5,val_loss:0.09730000048875809,val_acc:1.0 23/77 .........train_loss:1.1202000379562378,train_acc:0.25,val_loss:0.09790000319480896,val_acc:1.0 24/77 .........train_loss:0.98089998960495,train_acc:0.75,val_loss:0.09480000287294388,val_acc:1.0 25/77 .........train_loss:0.8733999729156494,train_acc:0.75,val_loss:0.093299999833107,val_acc:1.0 26/77 .........train_loss:1.1812000274658203,train_acc:0.25,val_loss:0.08869999647140503,val_acc:1.0 27/77 .........train_loss:1.0749000310897827,train_acc:0.5,val_loss:0.08020000159740448,val_acc:1.0 28/77 .........train_loss:0.8490999937057495,train_acc:0.5,val_loss:0.0851999968290329,val_acc:1.0 29/77 .........train_loss:1.2085000276565552,train_acc:0.25,val_loss:0.08789999783039093,val_acc:1.0 30/77 .........train_loss:0.8118000030517578,train_acc:0.5,val_loss:0.0860000029206276,val_acc:1.0 31/77 .........train_loss:0.5519000291824341,train_acc:0.5,val_loss:0.07940000295639038,val_acc:1.0 32/77 .........train_loss:1.3104000091552734,train_acc:0.25,val_loss:0.0722000002861023,val_acc:1.0 33/77 .........train_loss:1.1902999877929688,train_acc:0.25,val_loss:0.06689999997615814,val_acc:1.0 34/77 .........train_loss:0.1615000069141388,train_acc:1.0,val_loss:0.06849999725818634,val_acc:1.0 35/77 .........train_loss:0.382999986410141,train_acc:0.75,val_loss:0.06880000233650208,val_acc:1.0 36/77 .........train_loss:0.555899977684021,train_acc:0.75,val_loss:0.07169999927282333,val_acc:1.0 37/77 .........train_loss:0.26019999384880066,train_acc:0.75,val_loss:0.07150000333786011,val_acc:1.0 38/77 .........train_loss:0.8740000128746033,train_acc:0.5,val_loss:0.06880000233650208,val_acc:1.0 39/77 .........train_loss:0.5134000182151794,train_acc:0.75,val_loss:0.06459999829530716,val_acc:1.0 40/77 .........train_loss:0.9340999722480774,train_acc:0.75,val_loss:0.06549999862909317,val_acc:1.0 41/77 .........train_loss:0.684499979019165,train_acc:0.5,val_loss:0.061900001019239426,val_acc:1.0 42/77 .........train_loss:1.3522000312805176,train_acc:0.25,val_loss:0.05620000138878822,val_acc:1.0 43/77 .........train_loss:0.9114000201225281,train_acc:0.5,val_loss:0.052299998700618744,val_acc:1.0 44/77 .........train_loss:0.8479999899864197,train_acc:0.75,val_loss:0.05079999938607216,val_acc:1.0 45/77 .........train_loss:0.25519999861717224,train_acc:1.0,val_loss:0.054499998688697815,val_acc:1.0 46/77 .........train_loss:1.2669999599456787,train_acc:0.25,val_loss:0.053599998354911804,val_acc:1.0 47/77 .........train_loss:0.8998000025749207,train_acc:0.5,val_loss:0.051899999380111694,val_acc:1.0 48/77 .........train_loss:1.0500999689102173,train_acc:0.75,val_loss:0.052799999713897705,val_acc:1.0 49/77 .........train_loss:0.5569999814033508,train_acc:0.75,val_loss:0.05570000037550926,val_acc:1.0 50/77 .........train_loss:1.8724000453948975,train_acc:0.5,val_loss:0.05649999901652336,val_acc:1.0 51/77 .........train_loss:0.43650001287460327,train_acc:1.0,val_loss:0.058800000697374344,val_acc:1.0 52/77 .........train_loss:1.0694999694824219,train_acc:0.5,val_loss:0.05950000137090683,val_acc:1.0 53/77 .........train_loss:1.9672000408172607,train_acc:0.5,val_loss:0.05640000104904175,val_acc:1.0 54/77 .........train_loss:0.24560000002384186,train_acc:1.0,val_loss:0.05469999834895134,val_acc:1.0 55/77 .........train_loss:0.7495999932289124,train_acc:0.75,val_loss:0.054099999368190765,val_acc:1.0 56/77 .........train_loss:0.58160001039505,train_acc:0.75,val_loss:0.052400000393390656,val_acc:1.0 57/77 .........train_loss:0.4336000084877014,train_acc:0.75,val_loss:0.05169999971985817,val_acc:1.0 58/77 .........train_loss:0.42489999532699585,train_acc:0.75,val_loss:0.050200000405311584,val_acc:1.0 59/77 .........train_loss:0.916700005531311,train_acc:0.25,val_loss:0.0502999983727932,val_acc:1.0 60/77 .........train_loss:0.8044000267982483,train_acc:0.5,val_loss:0.050999999046325684,val_acc:1.0 61/77 .........train_loss:1.0534000396728516,train_acc:0.5,val_loss:0.050999999046325684,val_acc:1.0 62/77 .........train_loss:1.2537000179290771,train_acc:0.75,val_loss:0.04969999939203262,val_acc:1.0 63/77 .........train_loss:1.7020000219345093,train_acc:0.25,val_loss:0.048900000751018524,val_acc:1.0 64/77 .........train_loss:1.801300048828125,train_acc:0.0,val_loss:0.04839999973773956,val_acc:1.0 65/77 .........train_loss:1.0925999879837036,train_acc:0.5,val_loss:0.04899999871850014,val_acc:1.0 66/77 .........train_loss:0.1964000016450882,train_acc:1.0,val_loss:0.04899999871850014,val_acc:1.0 67/77 .........train_loss:0.42289999127388,train_acc:0.75,val_loss:0.0494999997317791,val_acc:1.0 68/77 .........train_loss:1.36080002784729,train_acc:0.5,val_loss:0.048900000751018524,val_acc:1.0 69/77 .........train_loss:0.9207000136375427,train_acc:0.5,val_loss:0.049400001764297485,val_acc:1.0 70/77 .........train_loss:0.16259999573230743,train_acc:1.0,val_loss:0.050999999046325684,val_acc:1.0 71/77 .........train_loss:0.8614000082015991,train_acc:0.5,val_loss:0.0471000000834465,val_acc:1.0 72/77 .........train_loss:0.7986999750137329,train_acc:0.25,val_loss:0.04610000178217888,val_acc:1.0 73/77 .........train_loss:1.6700999736785889,train_acc:0.5,val_loss:0.046300001442432404,val_acc:1.0 74/77 .........train_loss:1.0089999437332153,train_acc:0.5,val_loss:0.047600001096725464,val_acc:1.0 75/77 .........train_loss:0.8454999923706055,train_acc:0.5,val_loss:0.045499999076128006,val_acc:1.0 76/77 .........train_loss:0.8860999941825867,train_acc:0.75,val_loss:0.0421999990940094,val_acc:1.0 77/77 .........train_loss:0.3116999864578247,train_acc:0.75,val_loss:0.04360000044107437,val_acc:1.0 1/10 .........epoch_loss0.8798521880979663 Epoch 2/10 : 1/77 .........train_loss:0.4812000095844269,train_acc:1.0,val_loss:0.043299999088048935,val_acc:1.0 2/77 .........train_loss:0.26570001244544983,train_acc:1.0,val_loss:0.04280000180006027,val_acc:1.0 3/77 .........train_loss:1.6969000101089478,train_acc:0.5,val_loss:0.0430000014603138,val_acc:1.0 4/77 .........train_loss:0.3089999854564667,train_acc:0.75,val_loss:0.04230000078678131,val_acc:1.0 5/77 .........train_loss:0.7508000135421753,train_acc:0.75,val_loss:0.043299999088048935,val_acc:1.0 6/77 .........train_loss:0.41130000352859497,train_acc:0.75,val_loss:0.04439999908208847,val_acc:1.0 7/77 .........train_loss:1.2664999961853027,train_acc:0.5,val_loss:0.04610000178217888,val_acc:1.0 8/77 .........train_loss:0.20499999821186066,train_acc:1.0,val_loss:0.04859999939799309,val_acc:1.0 9/77 .........train_loss:0.0925000011920929,train_acc:1.0,val_loss:0.04769999906420708,val_acc:1.0 10/77 .........train_loss:1.351699948310852,train_acc:0.5,val_loss:0.04769999906420708,val_acc:1.0 11/77 .........train_loss:0.724399983882904,train_acc:0.5,val_loss:0.04729999974370003,val_acc:1.0 12/77 .........train_loss:1.0586999654769897,train_acc:0.5,val_loss:0.04910000041127205,val_acc:1.0 13/77 .........train_loss:1.3040000200271606,train_acc:0.5,val_loss:0.04919999837875366,val_acc:1.0 14/77 .........train_loss:1.4428999423980713,train_acc:0.5,val_loss:0.05050000175833702,val_acc:1.0 15/77 .........train_loss:0.44850000739097595,train_acc:0.75,val_loss:0.050999999046325684,val_acc:1.0 16/77 .........train_loss:0.4724999964237213,train_acc:0.75,val_loss:0.051500000059604645,val_acc:1.0 17/77 .........train_loss:0.388700008392334,train_acc:0.75,val_loss:0.05079999938607216,val_acc:1.0 18/77 .........train_loss:0.3449000120162964,train_acc:1.0,val_loss:0.05169999971985817,val_acc:1.0 19/77 .........train_loss:0.835099995136261,train_acc:0.75,val_loss:0.05220000073313713,val_acc:1.0 20/77 .........train_loss:1.378499984741211,train_acc:0.5,val_loss:0.052299998700618744,val_acc:1.0 21/77 .........train_loss:1.5405999422073364,train_acc:0.0,val_loss:0.05040000006556511,val_acc:1.0 22/77 .........train_loss:0.7993000149726868,train_acc:0.75,val_loss:0.0502999983727932,val_acc:1.0 23/77 .........train_loss:0.8944000005722046,train_acc:0.5,val_loss:0.04910000041127205,val_acc:1.0 24/77 .........train_loss:1.215399980545044,train_acc:0.75,val_loss:0.04560000076889992,val_acc:1.0 25/77 .........train_loss:1.4556000232696533,train_acc:0.25,val_loss:0.044599998742341995,val_acc:1.0 26/77 .........train_loss:0.7631000280380249,train_acc:0.5,val_loss:0.04360000044107437,val_acc:1.0 27/77 .........train_loss:0.853600025177002,train_acc:0.25,val_loss:0.042899999767541885,val_acc:1.0 28/77 .........train_loss:1.0032999515533447,train_acc:0.75,val_loss:0.042500000447034836,val_acc:1.0 29/77 .........train_loss:0.644599974155426,train_acc:0.75,val_loss:0.04270000010728836,val_acc:1.0 30/77 .........train_loss:2.1033999919891357,train_acc:0.5,val_loss:0.04270000010728836,val_acc:1.0 31/77 .........train_loss:0.35929998755455017,train_acc:0.75,val_loss:0.0430000014603138,val_acc:1.0 32/77 .........train_loss:1.4740999937057495,train_acc:0.5,val_loss:0.04230000078678131,val_acc:1.0 33/77 .........train_loss:1.999400019645691,train_acc:0.5,val_loss:0.04259999841451645,val_acc:1.0 34/77 .........train_loss:0.08709999918937683,train_acc:1.0,val_loss:0.043699998408555984,val_acc:1.0 35/77 .........train_loss:0.8490999937057495,train_acc:0.75,val_loss:0.04540000110864639,val_acc:1.0 36/77 .........train_loss:0.22130000591278076,train_acc:1.0,val_loss:0.04729999974370003,val_acc:1.0 37/77 .........train_loss:0.17170000076293945,train_acc:1.0,val_loss:0.04960000142455101,val_acc:1.0 38/77 .........train_loss:0.8406000137329102,train_acc:0.5,val_loss:0.049400001764297485,val_acc:1.0 39/77 .........train_loss:1.1347999572753906,train_acc:0.25,val_loss:0.05009999871253967,val_acc:1.0 40/77 .........train_loss:0.11699999868869781,train_acc:1.0,val_loss:0.052000001072883606,val_acc:1.0 41/77 .........train_loss:0.9308000206947327,train_acc:0.75,val_loss:0.050700001418590546,val_acc:1.0 42/77 .........train_loss:0.9972000122070312,train_acc:0.75,val_loss:0.04919999837875366,val_acc:1.0 43/77 .........train_loss:0.5979999899864197,train_acc:0.5,val_loss:0.04969999939203262,val_acc:1.0 44/77 .........train_loss:1.0957000255584717,train_acc:0.5,val_loss:0.05079999938607216,val_acc:1.0 45/77 .........train_loss:0.46149998903274536,train_acc:0.75,val_loss:0.050999999046325684,val_acc:1.0 46/77 .........train_loss:1.5649000406265259,train_acc:0.25,val_loss:0.05090000107884407,val_acc:1.0 47/77 .........train_loss:1.2698999643325806,train_acc:0.5,val_loss:0.05009999871253967,val_acc:1.0 48/77 .........train_loss:1.8796000480651855,train_acc:0.25,val_loss:0.0494999997317791,val_acc:1.0 49/77 .........train_loss:0.06759999692440033,train_acc:1.0,val_loss:0.05130000039935112,val_acc:1.0 50/77 .........train_loss:0.8188999891281128,train_acc:0.5,val_loss:0.052799999713897705,val_acc:1.0 51/77 .........train_loss:0.2257000058889389,train_acc:1.0,val_loss:0.05310000106692314,val_acc:1.0 52/77 .........train_loss:1.1119999885559082,train_acc:0.5,val_loss:0.05310000106692314,val_acc:1.0 53/77 .........train_loss:0.9301000237464905,train_acc:0.5,val_loss:0.051600001752376556,val_acc:1.0 54/77 .........train_loss:0.4131999909877777,train_acc:0.75,val_loss:0.050700001418590546,val_acc:1.0 55/77 .........train_loss:0.7595999836921692,train_acc:0.5,val_loss:0.050700001418590546,val_acc:1.0 56/77 .........train_loss:0.5605999827384949,train_acc:0.75,val_loss:0.050700001418590546,val_acc:1.0 57/77 .........train_loss:0.677299976348877,train_acc:0.75,val_loss:0.04410000145435333,val_acc:1.0 58/77 .........train_loss:0.28029999136924744,train_acc:1.0,val_loss:0.04360000044107437,val_acc:1.0 59/77 .........train_loss:0.911300003528595,train_acc:0.75,val_loss:0.042399998754262924,val_acc:1.0 60/77 .........train_loss:0.1624000072479248,train_acc:1.0,val_loss:0.04360000044107437,val_acc:1.0 61/77 .........train_loss:1.5983999967575073,train_acc:0.75,val_loss:0.04179999977350235,val_acc:1.0 62/77 .........train_loss:2.1105000972747803,train_acc:0.25,val_loss:0.0430000014603138,val_acc:1.0 63/77 .........train_loss:0.817300021648407,train_acc:0.5,val_loss:0.04280000180006027,val_acc:1.0 64/77 .........train_loss:0.9713000059127808,train_acc:0.5,val_loss:0.04129999876022339,val_acc:1.0 65/77 .........train_loss:0.883400022983551,train_acc:0.5,val_loss:0.04190000146627426,val_acc:1.0 66/77 .........train_loss:0.22089999914169312,train_acc:1.0,val_loss:0.042399998754262924,val_acc:1.0 67/77 .........train_loss:0.4081000089645386,train_acc:0.75,val_loss:0.04270000010728836,val_acc:1.0 68/77 .........train_loss:0.48579999804496765,train_acc:0.75,val_loss:0.04390000179409981,val_acc:1.0 69/77 .........train_loss:0.39079999923706055,train_acc:0.75,val_loss:0.04439999908208847,val_acc:1.0 70/77 .........train_loss:0.3855000138282776,train_acc:0.75,val_loss:0.04399999976158142,val_acc:1.0 71/77 .........train_loss:1.3310999870300293,train_acc:0.75,val_loss:0.04179999977350235,val_acc:1.0 72/77 .........train_loss:0.19629999995231628,train_acc:1.0,val_loss:0.04129999876022339,val_acc:1.0 73/77 .........train_loss:1.7139999866485596,train_acc:0.25,val_loss:0.04100000113248825,val_acc:1.0 74/77 .........train_loss:0.5117999911308289,train_acc:0.75,val_loss:0.042399998754262924,val_acc:1.0 75/77 .........train_loss:1.1568000316619873,train_acc:0.5,val_loss:0.040800001472234726,val_acc:1.0 76/77 .........train_loss:0.777899980545044,train_acc:0.75,val_loss:0.039900001138448715,val_acc:1.0 77/77 .........train_loss:0.259799987077713,train_acc:1.0,val_loss:0.04039999842643738,val_acc:1.0 2/10 .........epoch_loss0.8271800862117246 ```

卷积神经网络训练loss变为nan

卷积神经网络训练,用的是mnist数据集,第一次训练前损失函数还是一个值,训练一次之后就变成nan了,使用的损失函数是ce = tf.nn.sparse_softmax_cross_entropy_with_logits(logits=y, labels=tf.argmax(y_, 1)),cem = tf.reduce.mean(ce),应该不会出现真数为零或负的情况,而且训练前loss是存在的,只是训练后变为nan,求各位大牛答疑解惑,感激不尽。![图片说明](https://img-ask.csdn.net/upload/201902/18/1550420090_522553.png)![图片说明](https://img-ask.csdn.net/upload/201902/18/1550420096_230838.png)![图片说明](https://img-ask.csdn.net/upload/201902/18/1550420101_914053.png)

神经网络cost值不下降的原因

训练一个梯度下降的二分类模型,当神经网络是[n,20,4,1]的cost值是下降收敛的, 但是[n,20,7,5,1]cost值初始为0.69下降到0.64就不会下降了,这是为什么呢? 贴一下代码: ``` import numpy as np import matplotlib.pyplot as plt import h5py #参数初始化,将所有w/b都封装在一个dict中 def initialize_parameters(layer_dims): parameters = {} L = len(layer_dims) for i in range(1,L): parameters['w'+ str(i)] = np.random.randn(layer_dims[i],layer_dims[i-1])*0.01 parameters['b'+ str(i)] = np.zeros((layer_dims[i],1)) assert(parameters['w'+ str(i)]).shape == (layer_dims[i],layer_dims[i-1]) assert(parameters['b'+ str(i)]).shape == (layer_dims[i],1) return parameters #定义激活函数 def relu(Z): A=(Z+abs(Z))/2 assert(A.shape == Z.shape) return A def sigmoid(Z): A=1.0/(1+np.exp(-Z)) assert(A.shape == Z.shape) return A #向前传播 def forward_propagation(X,parameters): #caches存储了每一层计算得到的A,Z值 caches = {} L=len(parameters)//2 A_prev=X for i in range(1,L): Z=np.dot(parameters['w'+str(i)],A_prev)+parameters['b'+str(i)] A=relu(Z) caches['Z'+str(i)]=Z caches['A'+str(i)]=A #这一层计算得到的A需要保留,下一层计算Z要用 A_prev=A #输出层的激活函数时sigmoid Z=np.dot(parameters['w'+str(L)],A_prev)+parameters['b'+str(L)] A=sigmoid(Z) caches['Z'+str(L)]=Z caches['A'+str(L)]=A #这里多存一个X是因为反向传播的时候要用到 caches['A0'] = X return A,caches #计算代价 def cpmpute_cost(A,Y): m=Y.shape[1] cost=-1/m*np.sum(np.multiply(np.log(A),Y)+np.multiply((1-Y),np.log(1-A))) cost=np.squeeze(cost) return cost #relu函数的导数 def relu_back(Z,dA): deri = Z deri[Z < 0]=0 deri[Z >=0]=1 return deri #反向传播 def back_propagation(Y,caches,parameters): #所有的dw和db grads={} L=len(caches)//2 m=Y.shape[1] #AL其实就是一次迭代得到的预测值 AL=caches['A'+str(L)] #因为sigmoid反向传和relu不同,所以单独处理 dZ=AL-Y dW=np.dot(dZ,caches['A'+str(L-1)].T)/m db=np.sum(dZ,axis=1,keepdims=True)/m grads['dw'+str(L)]=dW grads['db'+str(L)]=db for i in reversed(range(1,L)): dA=np.dot(parameters['w'+str(i+1)].T,dZ) dZ=np.multiply(dA,relu_back(caches['Z'+str(i)],dA)) dW=1.0/m * np.dot(dZ,caches['A'+str(i-1)].T) db=1.0/m * np.sum(dZ,axis=1,keepdims=True) grads['dw'+str(i)]=dW grads['db'+str(i)]=db return grads #更新参数 def update_parameters(parameters, grads, alphs): L = len(parameters)//2 for l in range(L): parameters['w'+str(l+1)] = parameters['w'+str(l+1)] - alphs * grads['dw'+str(l+1)] parameters['b'+str(l+1)] = parameters['b'+str(l+1)] - alphs * grads['db'+str(l+1)] return parameters #模型预测 def predict(X,parameters): A2,caches=forward_propagation(X,parameters) temp=A2.shape[1] Y_pred=np.zeros([1,temp]) for i in range(temp): if A2[:,i]>0.5: Y_pred[:,i]=1 else: Y_pred[:,i]=0 return Y_pred #模型整合 def model(X,Y,layer_dims,iter_times,alphs,print_flag): np.random.seed(1) parameters=initialize_parameters(layer_dims) for i in range(0,iter_times): A,caches=forward_propagation(X,parameters) cost=cpmpute_cost(A,Y) grads=back_propagation(Y,caches,parameters) parameters=update_parameters(parameters,grads,alphs) if print_flag and i % 100 == 0: print('iteration at ',i,' cost :',cost) return parameters n=train_data_finalX.shape[0] layer_dims=[n,20,7,5,1] parameters=model(train_data_finalX,train_data_finalY,layer_dims,2500,0.0075,True) y_pred_train=predict(train_data_finalX,parameters) print('train acc is ',np.mean(y_pred_train == train_data_finalY)*100,'%') y_pred_test=predict(test_data_finalX,parameters) print('test acc is ',np.mean(y_pred_test == test_data_finalY)*100,'%') ``` 结果类似这样,后面cost值变化很小,在小数点后5位 我试过增加迭代次数和增大学习因子,还是有这个问题 iteration at 0 cost : 0.6932015486338629 iteration at 100 cost : 0.6482987506672847 iteration at 200 cost : 0.6443527436694975 iteration at 300 cost : 0.6439059082659386 iteration at 400 cost : 0.6436651460852033 iteration at 500 cost : 0.6431109804509275

神经网络 能否让训练时权重之和始终保持1,从而得到最佳比例?

神经网络 能否让训练时权重之和始终保持1,从而得到最佳比例?

请问通过仿真软件得出的数据可以作为神经网络的训练集吗?

本人神经网络入门小白。 课题组的一项任务,是研究纯物理中的某些自变量与某些因变量之间的关系,目前物理中没有明确的公式来描述定量关系,希望通过神经网络模型尝试归纳。 我知道神经网络应该需要大量训练集,但是物理实验的过程比较复杂,很难短时间内得到大量数据,就想用仿真软件,得到很多仿真数据。请问仿真数据可以作为神经网络的训练集吗? 补充:我担心的是,即便神经网络训练出了变量之间的关系,可能也只是仿真软件内部的关系(比如我做的,流体力学公式和格子玻尔兹曼法的近似关系)。或者说,我得到的规律是仿真的规律,没有足够说服力认为是物理上的规律? 实验我也可以做几组的,用于检验神经网络模型 求AI大神指点!

神经网络按梯度下降训练,不应该用同一个样本迭代直到得到loss最小值?然后再继续下一个样本吗?

在学习神经网络训练方式,梯度下降方法有个疑问 1、如下图所示训练过程,迭代得话,不应该继续用同一个样本计算权重直到得到loss极值? 2、我的理解就是每个样本都对应一个loss极值,不是吗?但是如果用不同样本去训练,用A训练得到一个最小loss适合样本A,用B训练得到适合样本B的最小loss,那就不适合A了啊? ![图片说明](https://img-ask.csdn.net/upload/201907/16/1563289204_340670.png) 3、如下代码怎么理解,每个训练批次和重复使用样本的意义 其中feed_dict函数意义是什么:如果是30000步,每步喂一个批次8个样本是怎么训练的? ``` import tensorflow as tf import numpy as np BATCH_SIZE=8 seed=23455 ####1 样本和标签的生成 #基于seed产生随机数 rng=np.random.RandomState(seed) #随机数返回32行2列的矩阵,作为输入样本 X=rng.rand(32,2) #设置标签Y,给每行样本进行设置:和<1==>1 Y=[[int(x0+x1<1)] for(x0,x1) in X] print('X:\n',X) print('Y:\n',Y) ####2 定义神经网络输入、参数和输出,定义前向网络 x=tf.placeholder(tf.float32,shape=(None,2)) y_=tf.placeholder(tf.float32,shape=(None,1))#True lable #其中的3是隐藏层的神经元个数,列举:只有一个隐藏层(w1,w2) 有两个隐藏层(w1,w2,w3) #n个隐藏层有n+1个权值矩阵 w1= tf.Variable(tf.random_normal([2,3], stddev=1,seed=1)) w2= tf.Variable(tf.random_normal([3,1], stddev=1,seed=1)) a= tf.matmul(x,w1) y= tf.matmul(a,w2) ####3 定义损失函数及反向传播方法 loss=tf.reduce_mean(tf.square(y-y_))#loss函数:均方误差:差的平方和均值 train_step= tf.train.GradientDescentOptimizer(0.001).minimize(loss)#梯度下降方向传播算法 #train_step= tf.train.MomentumOptimizer(0.001,0.9).minimize(loss) #train_step= tf.train.AdamOptimizer(0.001).minimize(loss) ####4 创建会话 with tf.Session() as sess: init_op = tf.global_variables_initializer() sess.run(init_op) #输出未经训练,随机生成的参数 print('w1:\n', sess.run(w1)) print('w2:\n', sess.run(w2)) print('\n') ####5 训练模型 STEPS= 30000 for i in range(STEPS): start=(i*BATCH_SIZE)%32 end = start+BATCH_SIZE sess.run(train_step, feed_dict={x: X[start:end], y_: Y[start:end]}) if i % 500 == 0: total_loss=sess.run(loss, feed_dict={x: X, y_: Y}) print('After %d training steps, loss on all data is %g'%(i, total_loss)) ####6 输出训练后的参数 print('\n') print('w1:\n', sess.run(w1)) print('w2:\n', sess.run(w2)) ```

神经网络小白问题:训练误差太大,是程序写错了么???

小白刚学神经网络,自编码,反向传播训练。 一个隐含层,一个输出层。输入与输出n相等 训练一个样本, 比如 【0.1 ,0.2,0.3,0.4】能拟合 但是训练一个矩阵,输入多个样本,拟合后的矩阵误差太大了,,是我的程序写错了么?不应该呀。 比如随便输入一个矩阵 ``` 0.1000 0.9000 0.9000 0.1000 0.5000 0.6000 0.6000 0.5000 ``` 输出结果就非常差: ``` 0.2928 0.7560 0.7560 0.2929 0.3026 0.7467 0.7465 0.3023 ``` 想想也是,第一行与第二行没有关系,训练都要照顾,肯定拟合不好, 神经网络是这么用的么??? 还是说数据特征要多一些??? 真是难受,求大神开导,是我写错了,还是神经网络不能这么用? matlab代码如下 ```matlab mat=load("mat.txt") [m,n]=size(mat); visible_num=n; hidden_num=3; out=partial2(mat,visible_num,hidden_num); out mat function [out]=partial2(mat,visible_num,hidden_num) [m,n]=size(mat); alpha=0.1; W2=normrnd(0,0.1,hidden_num,visible_num); W3=normrnd(0,0.1,visible_num,hidden_num); b2=normrnd(0,0.1,[hidden_num,1]); b3=normrnd(0,0.1,[visible_num,1]); %b2=zeros(hidden_num,1); %b3=zeros(visible_num,1); it=1000; out=0; for j=1:it W2_grad=zeros(hidden_num,visible_num); W3_grad=zeros(visible_num,hidden_num); b2_grad=zeros(hidden_num,1); b3_grad=zeros(visible_num,1); for i=1:m z2=W2*mat(i,:)'+b2; a2=sigmod(z2); z3=W3*a2+b3; a3=sigmod(z3); t3=-(mat(i,:)'-a3).*(a3.*(1-a3)); t2=W3'*t3.*(a2.*(1-a2)); W3_grad=W3_grad+t3*a2'; W2_grad=W2_grad+t2*mat(i,:); b3_grad=b3_grad+t3; b2_grad=b2_grad+t2; end W3_grad=(W3_grad./m).*alpha; W2_grad=(W2_grad./m).*alpha; b2_grad=b2_grad./m.*alpha; b3_grad=b3_grad./m.*alpha; W2=W2-W2_grad; W3=W3-W3_grad; b2=b2-b2_grad; b3=b3-b3_grad; z2=W2*mat'+b2; a2=sigmod(z2); z3=W3*a2+b3; a3=sigmod(z3); err2=sum(sum(abs(mat(i,:)'-a3))) out=a3'; end end function [ x ] = sigmod( x ) x=1./(1+exp(-x)); end ``` ![图片说明](https://img-ask.csdn.net/upload/201711/24/1511529038_360773.png)

tensorflow CNN训练图片分类的时候,模型训练不出来,准确率0.1(分了十类),模型失效,是什么原因?

``` def compute_accuracy(v_xs, v_ys): global prediction y_pre = sess.run(prediction, feed_dict={xs: v_xs, keep_prob: 1}) correct_prediction = tf.equal(tf.argmax(y_pre,1), tf.argmax(v_ys,1)) accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32)) result = sess.run(accuracy, feed_dict={xs: v_xs, ys: v_ys, keep_prob: 1}) return result def weight_variable(shape): initial = tf.truncated_normal(shape, stddev=0.1) return tf.Variable(initial) def bias_variable(shape): initial = tf.constant(0.1, shape=shape) return tf.Variable(initial) def conv2d(x, W): # stride [1, x_movement, y_movement, 1] # Must have strides[0] = strides[3] = 1 return tf.nn.conv2d(x, W, strides=[1, 1, 1, 1], padding='SAME') def max_pool_2x2(x): # stride [1, x_movement, y_movement, 1] return tf.nn.max_pool(x, ksize=[1,4,4,1], strides=[1,4,4,1], padding='SAME') # define placeholder for inputs to network xs = tf.placeholder(tf.float32, [None, 65536])/255. # 256x256 ys = tf.placeholder(tf.float32, [None, 10]) keep_prob = tf.placeholder(tf.float32) x_image = tf.reshape(xs, [-1, 256, 256, 1]) # print(x_image.shape) # [n_samples, 28,28,1] ## conv1 layer ## W_conv1 = weight_variable([3,3, 1,64]) # patch 5x5, in size 1, out size 32 b_conv1 = bias_variable([64]) h_conv1 = tf.nn.elu(conv2d(x_image, W_conv1) + b_conv1) # output size 28x28x32 h_pool1 = tf.nn.max_pool(h_conv1, ksize=[1,2,2,1], strides=[1,2,2,1], padding='SAME') # output size 14x14x32 ## conv2 layer ## W_conv2 = weight_variable([3,3, 64, 128]) # patch 5x5, in size 32, out size 64 b_conv2 = bias_variable([128]) h_conv2 = tf.nn.elu(conv2d(h_pool1, W_conv2) + b_conv2) # output size 14x14x64 h_pool2 = max_pool_2x2(h_conv2) # output size 7x7x64 ## conv3 layer ## W_conv3 = weight_variable([3,3, 128, 256]) # patch 5x5, in size 32, out size 64 b_conv3 = bias_variable([256]) h_conv3 = tf.nn.elu(conv2d(h_pool2, W_conv3) + b_conv3) # output size 14x14x64 h_pool3 = max_pool_2x2(h_conv3) ## conv4 layer ## W_conv4 = weight_variable([3,3, 256, 512]) # patch 5x5, in size 32, out size 64 b_conv4 = bias_variable([512]) h_conv4 = tf.nn.elu(conv2d(h_pool3, W_conv4) + b_conv4) # output size 14x14x64 h_pool4 = max_pool_2x2(h_conv4) # ## conv5 layer ## # W_conv5 = weight_variable([3,3, 512, 512]) # patch 5x5, in size 32, out size 64 # b_conv5 = bias_variable([512]) # h_conv5 = tf.nn.relu(conv2d(h_pool3, W_conv4) + b_conv4) # output size 14x14x64 # h_pool5 = max_pool_2x2(h_conv4) ## fc1 layer ## W_fc1 = weight_variable([2*2*512, 128]) b_fc1 = bias_variable([128]) # [n_samples, 7, 7, 64] ->> [n_samples, 7*7*64] h_pool4_flat = tf.reshape(h_pool4, [-1, 2*2*512]) h_fc1 = tf.nn.elu(tf.matmul(h_pool4_flat, W_fc1) + b_fc1) h_fc1_drop = tf.nn.dropout(h_fc1, keep_prob) ## fc2 layer ## W_fc2 = weight_variable([128, 10]) b_fc2 = bias_variable([10]) prediction = tf.nn.softmax(tf.matmul(h_fc1_drop, W_fc2) + b_fc2) # 定义优化器和训练op loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=ys, logits=prediction)) train_step = tf.train.RMSPropOptimizer((1e-3)).minimize(loss) correct_prediction = tf.equal(tf.argmax(prediction, 1), tf.argmax(ys, 1)) accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32)) # 用于保存和载入模型 saver = tf.train.Saver() def int2onehot(train_batch_ys): num_labels = train_batch_ys.shape[0] num_classes=10 index_offset = np.arange(num_labels) * num_classes labels_one_hot = np.zeros((num_labels, num_classes),dtype=np.float32) labels_one_hot.flat[index_offset + train_batch_ys.ravel()] = 1 return labels_one_hot train_label_lists, train_data_lists, train_fname_lists = read_tfrecords(train_tfrecord_file) iterations = 100 with tf.Session() as sess: sess.run(tf.global_variables_initializer()) # 执行训练迭代 for it in range(iterations): # 这里的关键是要把输入数组转为np.array for i in range(200): train_label_list = train_label_lists[i] train_data_list= train_data_lists[i] train_name_list = train_fname_lists[i] #print("shape of train_data_list: {}\tshape of train_label_list: {}".format(train_data_list.shape, train_label_list.shape)) #print('该批文件名:',train_name_list) print('该批标签:',train_label_list) # 计算有多少类图片 #num_classes = len(set(train_label_list)) #print("num_classes:",num_classes) train_batch_xs = train_data_list train_batch_xs = np.reshape(train_batch_xs, (-1, 65536)) train_batch_ys = train_label_list train_batch_ys = int2onehot(train_batch_ys) #print('第'+str(i)+'批-----------') print("连接层1之后----------------------------------------") for i in range(80): print("元素"+str(i)+":",sess.run(tf.reduce_mean(sess.run(h_fc1_drop,feed_dict={xs: train_batch_xs, ys: train_batch_ys, keep_prob: 0.5})[i].shape))) print("元素"+str(i)+":",sess.run(h_fc1_drop,feed_dict={xs: train_batch_xs, ys: train_batch_ys, keep_prob: 0.5})[i]) print("连接层2之后----------------------------------------") for i in range(80): print("元素"+str(i)+":",sess.run(tf.reduce_mean(sess.run(prediction,feed_dict={xs: train_batch_xs, ys: train_batch_ys, keep_prob: 0.5})[i].shape))) print("元素"+str(i)+":",sess.run(prediction,feed_dict={xs: train_batch_xs, ys: train_batch_ys, keep_prob: 0.5})[i]) #loss.run(feed_dict={xs: train_batch_xs, ys: train_batch_ys, keep_prob: 0.5}) train_step.run(feed_dict={xs: train_batch_xs, ys: train_batch_ys, keep_prob: 0.5}) time.sleep(7) # 每完成五次迭代,判断准确度是否已达到100%,达到则退出迭代循环 iterate_accuracy = 0 if it%5 == 0: iterate_accuracy = accuracy.eval(feed_dict={xs: train_batch_xs, ys: train_batch_ys, keep_prob: 0.5}) print ('iteration %d: accuracy %s' % (it, iterate_accuracy)) if iterate_accuracy >= 1: break; print ('完成训练!') ```

回归问题,训练损失不断增大,测试损失不断减小

如题,训练损失不断增大,测试损失不断减小,两个趋势总是反着的

tensorflow训练网络时精度很高,在训练时查看softmax之后的概率值和实际的标签值却对应不上

我想保存网络softmax之后的概率值,我把最后一个epoch中softmax之后的概率值和实际标签的值放在两个不同的大数组里面,训练结束以后查看,发现这两个预测的标签和实际标签基本对应不上,但是网络训练时最后的精度有0.98以上,调试查看,每个step的acc有0.986,但是查看网络输出的概率值和实际标签却基本对应不上,请问这是什么原因呢?![图片说明](https://img-ask.csdn.net/upload/201911/25/1574665421_337058.png)![图片说明](https://img-ask.csdn.net/upload/201911/25/1574665430_165293.png) 如上图所示,batch_y是实际的标签值,logit_output是softmax之后的概率值,此时网络已经训练到了最后一个epoch,已经收敛,调试看到此时的精度为0.96875,但预测值和标签值却几乎对应不上,请问这是什么原因呢?

使用opencv中的神经网络训练加法运算

请问如何使用opencv3中的神经网络功能,通过训练让神经网络能够实现加法运算?

关于使用卷积神经网络训练图像识别需要图像集的数量

请问使用卷积神经网络训练图像识别,一般需要多少张图像?一般需要包含多少图像块? 请问大家一般是如何获取这些训练用的图片?感觉ImageNet速度太慢了,国内有没有ImageNet的镜像,或者其他的图像资源网站,多谢了!有没有自己做训练用的图片的?

BP神经网络的训练函数和学习函数,还有性能函数分别代表什么

首先我现在知道激励函数是什么。但是经常说的训练函数、学习函数还有性能函数分别指的是什么? 例如以下例子:“ 设定网络隐层和输出层激励函数分别为tansig和logsig函数, 网络训练函数为traingdx, 网络性能函数为mse,隐层神经元数初设为6。设定网络参数。网络迭代次数epochs为5000次, 期望误差goal为0.00000001, 学习速率lr为0. 01。” 网络训练函数为traingdx,这个公式到底是什么?我在百度查半天都没有查到具体的公式。 网络性能函数为mse,mse的公式是什么?

用matlab训练好的BP神经网络后,可以把训练好的权值直接用,然后自己利用该权值放在C语言中实现吗?

用matlab训练好的BP神经网络后,可以把训练好的权值直接用,然后自己利用该权值放在C语言中实现吗?

神经网络训练图片处理,这是具体是怎么做的

def transform(im, flag=True): ''' 将传入的图片进行预处理:对图像进行图像缩放和数据增强 Args: im : 传入的待处理的图片 Return: graph : 返回经过预处理的图片 #random.uniform(a, b)随机产生[a, b)之间的一个浮点数 ''' #便历数组 graph=np.zeros(graphSize[1]*graphSize[0]*1).reshape(graphSize[0],graphSize[1],1) deltaX=0 deltaY=0 ratio=1.464 if flag: lowerRatio=max(1.269,im.size[1]*1.0/graphSize[0],im.size[0]*1.0/graphSize[1]) upperRatio=max(lowerRatio,2.0) ratio=random.uniform(lowerRatio,upperRatio) deltaX=random.randint(0,int(graphSize[0]-im.size[1]/ratio)) deltaY=random.randint(0,int(graphSize[1]-im.size[0]/ratio)) else: ratio=max(1.464,im.size[1]*1.0/graphSize[0],im.size[0]*1.0/graphSize[1]) deltaX=int(graphSize[0]-im.size[1]/ratio)>>1 deltaY=int(graphSize[1]-im.size[0]/ratio)>>1 height=int(im.size[1]/ratio) width=int(im.size[0]/ratio) data = im.resize((width,height),Image.ANTIALIAS).getdata() data = 1-np.asarray(data,dtype='float')/255.0 data = data.reshape(height,width) graph[deltaX:deltaX+height,deltaY:deltaY+width,0]=data return graph

模型训练过程中,accuracy会突然下降然后又恢复到原来的趋势,这是什么原因造成的呢?

![图片说明](https://img-ask.csdn.net/upload/201904/24/1556075443_196447.jpg) ![图片说明](https://img-ask.csdn.net/upload/201904/24/1556075453_205158.jpg) ![图片说明](https://img-ask.csdn.net/upload/201904/24/1556075504_893098.jpg) ![图片说明](https://img-ask.csdn.net/upload/201904/24/1556075512_170126.jpg)

有关MATLAB神经网络预测的问题,请问我这个最后输出的五个值分别是未来五年的值吗?

clc clear all %% %输入数据和输出数据 P = [24358, 24242, 26377; 24242, 26377, 23125.2; 26377, 23125.2, 29797.6; 23125.2, 29797.6, 22213.6; 29797.6, 22213.6, 28373.3; 22213.6, 28373.3, 26839.5; 28373.3, 26839.5, 26263.9]; T = [23125.2 29797.6 22213.6 28373.3 26839.5 26263.9 26900.8]; %归一化数据 [input,inputps] = mapminmax(P,0,1); [output,outputps] = mapminmax(T,0,1); %% %构建BP神经网络 net = newff(input',output,[4,6]); %训练神经网络 net.trainParam.epochs = 100000; net.trainParam.goal = 0.000001; net.trainParam.lr = 0.1 net = train(net,input',output); %% %%预测结果 %神经网络输出 sim_out_1 = sim(net,[ 28373.3, 26839.5, 26263.9]'); sim_out_2 = sim(net,[ 26839.5, 26263.9, sim_out_1]'); sim_out_3 = sim(net,[ 26263.9, sim_out_1, sim_out_2]'); sim_out_4 = sim(net,[ sim_out_1, sim_out_2, sim_out_3]'); sim_out_5= sim(net,[ sim_out_2, sim_out_2, sim_out_4]'); %反归一化,最终结果 sim_out = mapminmax('reverse',sim_out_1,outputps) sim_out = mapminmax('reverse',sim_out_2,outputps) sim_out = mapminmax('reverse',sim_out_3,outputps) sim_out = mapminmax('reverse',sim_out_4,outputps) sim_out = mapminmax('reverse',sim_out_5,outputps) 如果不对要怎么才能输出未来5年的数据?求指教,万分感谢! 最后还有一个问题,为什么我每次运行输出的结果都不一样呢?求指教

卷积神经网络准确率提高后突降变很低是为什么?

卷积神经网络准确率提高后突降变很低是为什么?</br> ![图片说明](https://img-ask.csdn.net/upload/201903/24/1553409807_905308.png)</br> 训练数据集分成 275 批, 前面每批 16 个数据,最后一批 15 个数据,共4399个。是硬件问题(显存太小,950M 4G)还是程序编写问题。 卷积网络模型就是2个卷积池化+2个全连接。

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

Vue + Spring Boot 项目实战(十九):Web 项目优化解决方案

快来一起探索如何打脸我们的破项目,兄弟姐妹们把害怕打在公屏上!

你连存活到JDK8中著名的Bug都不知道,我怎么敢给你加薪

CopyOnWriteArrayList.java和ArrayList.java,这2个类的构造函数,注释中有一句话 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 public ArrayList(Collection&lt;? ...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

CSDN:因博主近期注重写专栏文章(已超过150篇),订阅博主专栏人数在突增,近期很有可能提高专栏价格(已订阅的不受影响),提前声明,敬请理解!

CSDN:因博主近期注重写专栏文章(已超过150篇),订阅博主专栏人数在突增,近期很有可能提高专栏价格(已订阅的不受影响),提前声明,敬请理解! 目录 博客声明 大数据了解博主粉丝 博主的粉丝群体画像 粉丝群体性别比例、年龄分布 粉丝群体学历分布、职业分布、行业分布 国内、国外粉丝群体地域分布 博主的近期访问每日增量、粉丝每日增量 博客声明 因近期博主写专栏的文章越来越多,也越来越精细,逐步优化文章。因此,最近一段时间,订阅博主专栏的人数增长也非常快,并且专栏价

一个HashMap跟面试官扯了半个小时

一个HashMap能跟面试官扯上半个小时 关注 安琪拉的博客 1.回复面试领取面试资料 2.回复书籍领取技术电子书 3.回复交流领取技术电子书 前言 HashMap应该算是Java后端工程师面试的必问题,因为其中的知识点太多,很适合用来考察面试者的Java基础。 开场 面试官: 你先自我介绍一下吧! 安琪拉: 我是安琪拉,草丛三婊之一,最强中单(钟馗不服)!哦,不对,串场了,我是**,目...

我说我不会算法,阿里把我挂了。

不说了,字节跳动也反手把我挂了。

记录下入职中软一个月(外包华为)

我在年前从上一家公司离职,没想到过年期间疫情爆发,我也被困在家里,在家呆着的日子让人很焦躁,于是我疯狂的投简历,看面试题,希望可以进大公司去看看。 我也有幸面试了我觉得还挺大的公司的(虽然不是bat之类的大厂,但是作为一名二本计算机专业刚毕业的大学生bat那些大厂我连投简历的勇气都没有),最后选择了中软,我知道这是一家外包公司,待遇各方面甚至不如我的上一家公司,但是对我而言这可是外包华为,能...

面试:第十六章:Java中级开发

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

培训班出来的人后来都怎么样了?(二)

接着上回说,培训班学习生涯结束了。后面每天就是无休止的背面试题,不是没有头脑的背,培训公司还是有方法的,现在回想当时背的面试题好像都用上了,也被问到了。回头找找面试题,当时都是打印下来天天看,天天背。 不理解呢也要背,面试造飞机,上班拧螺丝。班里的同学开始四处投简历面试了,很快就有面试成功的,刚开始一个,然后越来越多。不知道是什么原因,尝到胜利果实的童鞋,不满足于自己通过的公司,嫌薪水要少了,选择...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

工作八年,月薪60K,裸辞两个月,投简历投到怀疑人生!

近日,有网友在某职场社交平台吐槽,自己裸辞两个月了,但是找工作却让自己的心态都要崩溃了,全部无果,不是已查看无回音,就是已查看不符合。 “工作八年,两年一跳,裸辞两个月了,之前月薪60K,最近找工作找的心态崩了!所有招聘工具都用了,全部无果,不是已查看无回音,就是已查看不符合。进头条,滴滴之类的大厂很难吗???!!!投简历投的开始怀疑人生了!希望 可以收到大厂offer” 先来看看网...

大牛都会用的IDEA调试技巧!!!

导读 前天面试了一个985高校的实习生,问了他平时用什么开发工具,他想也没想的说IDEA,于是我抛砖引玉的问了一下IDEA的调试用过吧,你说说怎么设置断点...

都前后端分离了,咱就别做页面跳转了!统统 JSON 交互

文章目录1. 无状态登录1.1 什么是有状态1.2 什么是无状态1.3 如何实现无状态1.4 各自优缺点2. 登录交互2.1 前后端分离的数据交互2.2 登录成功2.3 登录失败3. 未认证处理方案4. 注销登录 这是本系列的第四篇,有小伙伴找不到之前文章,松哥给大家列一个索引出来: 挖一个大坑,Spring Security 开搞! 松哥手把手带你入门 Spring Security,别再问密...

97年世界黑客编程大赛冠军作品(大小仅为16KB),惊艳世界的编程巨作

这是世界编程大赛第一名作品(97年Mekka ’97 4K Intro比赛)汇编语言所写。 整个文件只有4095个字节, 大小仅仅为16KB! 不仅实现了3D动画的效果!还有一段震撼人心的背景音乐!!! 内容无法以言语形容,实在太强大! 下面是代码,具体操作看最后! @echo off more +1 %~s0|debug e100 33 f6 bf 0 20 b5 10 f3 a5...

程序员是做全栈工程师好?还是专注一个领域好?

昨天,有位大一的同学私信我,说他要做全栈工程师。 我一听,这不害了孩子么,必须制止啊。 谁知,讲到最后,更确定了他做全栈程序员的梦想。 但凡做全栈工程师的,要么很惨,要么很牛! 但凡很牛的,绝不是一开始就是做全栈的! 全栈工程师听起来好听,但绝没有你想象的那么简单。 今天听我来给你唠,记得帮我点赞哦。 一、全栈工程师的职责 如果你学习编程的目的只是玩玩,那随意,想怎么学怎么学。...

不要再到处使用 === 了

我们知道现在的开发人员都使用 === 来代替 ==,为什么呢?我在网上看到的大多数教程都认为,要预测 JavaScript 强制转换是如何工作这太复杂了,因此建议总是使用===。这些都...

什么是a站、b站、c站、d站、e站、f站、g站、h站、i站、j站、k站、l站、m站、n站?00后的世界我不懂!

A站 AcFun弹幕视频网,简称“A站”,成立于2007年6月,取意于Anime Comic Fun,是中国大陆第一家弹幕视频网站。A站以视频为载体,逐步发展出基于原生内容二次创作的完整生态,拥有高质量互动弹幕,是中国弹幕文化的发源地;拥有大量超粘性的用户群体,产生输出了金坷垃、鬼畜全明星、我的滑板鞋、小苹果等大量网络流行文化,也是中国二次元文化的发源地。 B站 全称“哔哩哔哩(bilibili...

十个摸鱼,哦,不对,是炫酷(可以玩一整天)的网站!!!

文章目录前言正文**1、Kaspersky Cyberthreat real-time map****2、Finding Home****3、Silk – Interactive Generative Art****4、Liquid Particles 3D****5、WINDOWS93****6、Staggering Beauty****7、Ostagram图片生成器网址****8、全历史网址*...

终于,月薪过5万了!

来看几个问题想不想月薪超过5万?想不想进入公司架构组?想不想成为项目组的负责人?想不想成为spring的高手,超越99%的对手?那么本文内容是你必须要掌握的。本文主要详解bean的生命...

用了这个 IDE 插件,5分钟解决前后端联调!

点击上方蓝色“程序猿DD”,选择“设为星标”回复“资源”获取独家整理的学习资料!作者 |李海庆我是一个 Web 开发前端工程师,受到疫情影响,今天是我在家办公的第78天。开发了两周,...

大厂的 404 页面都长啥样?最后一个笑了...

每天浏览各大网站,难免会碰到404页面啊。你注意过404页面么?猿妹搜罗来了下面这些知名网站的404页面,以供大家欣赏,看看哪个网站更有创意: 正在上传…重新上传取消 腾讯 正在上传…重新上传取消 网易 淘宝 百度 新浪微博 正在上传…重新上传取消 新浪 京东 优酷 腾讯视频 搜...

自从喜欢上了B站这12个UP主,我越来越觉得自己是个废柴了!

不怕告诉你,我自从喜欢上了这12个UP主,哔哩哔哩成为了我手机上最耗电的软件,几乎每天都会看,可是吧,看的越多,我就越觉得自己是个废柴,唉,老天不公啊,不信你看看…… 间接性踌躇满志,持续性混吃等死,都是因为你们……但是,自己的学习力在慢慢变强,这是不容忽视的,推荐给你们! 都说B站是个宝,可是有人不会挖啊,没事,今天咱挖好的送你一箩筐,首先啊,我在B站上最喜欢看这个家伙的视频了,为啥 ,咱撇...

代码注释如此沙雕,会玩还是你们程序员!

某站后端代码被“开源”,同时刷遍全网的,还有代码里的那些神注释。 我们这才知道,原来程序员个个都是段子手;这么多年来,我们也走过了他们的无数套路… 首先,产品经理,是永远永远吐槽不完的!网友的评论也非常扎心,说看这些代码就像在阅读程序员的日记,每一页都写满了对产品经理的恨。 然后,也要发出直击灵魂的质问:你是尊贵的付费大会员吗? 这不禁让人想起之前某音乐app的穷逼Vip,果然,穷逼在哪里都是...

Java14 新特性解读

Java14 已于 2020 年 3 月 17 号发布,官方特性解读在这里:https://openjdk.java.net/projects/jdk/14/以下是个人对于特性的中文式...

前端还能这么玩?(女朋友生日,用前端写了一个好玩的送给了她,高兴坏了)

前端还能这么玩?(女朋友生日,用前端写了一个好玩的送给了她,高兴坏了)

爬虫(101)爬点重口味的

小弟最近在学校无聊的很哪,浏览网页突然看到一张图片,都快流鼻血。。。然后小弟冥思苦想,得干一点有趣的事情python 爬虫库安装https://s.taobao.com/api?_ks...

工作两年简历写成这样,谁要你呀!

作者:小傅哥 博客:https://bugstack.cn 沉淀、分享、成长,让自己和他人都能有所收获! 一、前言 最近有伙伴问小傅哥,我的简历怎么投递了都没有反应,心里慌的很呀。 工作两年了目前的公司没有什么大项目,整天的维护别人的代码,有坑也不让重构,都烦死了。荒废我一身技能无处施展,投递的简历也没人看。我是不动物园里的猩猩,狒狒了! 我要加班,我要996,我要疯狂编码,求给我个机会… ...

相关热词 c# 开发接口 c# 中方法上面的限制 c# java 时间戳 c#单元测试入门 c# 数组转化成文本 c#实体类主外键关系设置 c# 子函数 局部 c#窗口位置设置 c# list 查询 c# 事件 执行顺序
立即提问