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

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

1个回答

你完全没有概念,之所以要训练就是要找到权重对于你的数据集,误差损失最小的取值,如果你权重是固定的,那么还要训练什么。

我怀疑你说的什么权重之和、比例之类的,说的是分类器的输出层的概率,而不是权重,那个,你只要加上一个softmax层自然总和就是1了。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
神经网络按梯度下降训练,不应该用同一个样本迭代直到得到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)) ```

为何用tensorflow对权重进行训练后将权重的值打印出来发现每次训练后权重的值没有发生变化?

为何用tensorflow对权重进行训练后将权重的值打印出来发现每次训练后权重的值没有发生变化?

神经网络 权值 为负数

神经网络的权值不是表示比例吗,为什么权值可以是负数,怎么理解?

迁移学习中进行医学影像分析,训练神经网络后accuracy保持不变。。。

使用的是vgg16的finetune网络,网络权重从keras中导入的,最上层有三层的一个小训练器的权重是由训练习得的。训练集大约300个样本,验证集大约80个样本,但程序运行后,第一二个epoch之间loss、acc还有变化,之后就不再变化,而且验证集的准确度一直接近于零。。想请有关卷积神经网络和机器学习方面的大神帮忙看一下是哪里出了问题 import keras from keras.models import Sequential from keras.layers import Dense,Dropout,Activation,Flatten from keras.layers import GlobalAveragePooling2D import numpy as np from keras.optimizers import RMSprop from keras.utils import np_utils import matplotlib.pyplot as plt from keras import regularizers from keras.applications.vgg16 import VGG16 from keras import optimizers from keras.layers.core import Lambda from keras import backend as K from keras.models import Model #写一个LossHistory类(回调函数),保存loss和acc,在keras下画图 class LossHistory(keras.callbacks.Callback): def on_train_begin(self, logs={}):#在每个batch的开始处(on_batch_begin):logs包含size,即当前batch的样本数 self.losses = {'batch':[], 'epoch':[]} self.accuracy = {'batch':[], 'epoch':[]} self.val_loss = {'batch':[], 'epoch':[]} self.val_acc = {'batch':[], 'epoch':[]} def on_batch_end(self, batch, logs={}): self.losses['batch'].append(logs.get('loss')) self.accuracy['batch'].append(logs.get('acc')) self.val_loss['batch'].append(logs.get('val_loss')) self.val_acc['batch'].append(logs.get('val_acc')) def on_epoch_end(self, batch, logs={}):#每迭代完一次从log中取得数据 self.losses['epoch'].append(logs.get('loss')) self.accuracy['epoch'].append(logs.get('acc')) self.val_loss['epoch'].append(logs.get('val_loss')) self.val_acc['epoch'].append(logs.get('val_acc')) def loss_plot(self, loss_type): iters = range(len(self.losses[loss_type])) #绘图的横坐标? plt.figure() #建立一个空的画布 if loss_type == 'epoch': plt.subplot(211) plt.plot(iters,self.accuracy[loss_type],'r',label='train acc') plt.plot(iters,self.val_acc[loss_type],'b',label='val acc') # val_acc用蓝色线表示 plt.grid(True) plt.xlabel(loss_type) plt.ylabel('accuracy') plt.show() plt.subplot(212) plt.plot(iters, self.losses[loss_type], 'r', label='train loss') # val_acc 用蓝色线表示 plt.plot(iters, self.val_loss[loss_type], 'b', label='val loss') # val_loss 用黑色线表示 plt.xlabel(loss_type) plt.ylabel('loss') plt.legend(loc="upper right") #把多个axs的图例放在一张图上,loc表示位置 plt.show() print(np.mean(self.val_acc[loss_type])) print(np.std(self.val_acc[loss_type])) seed = 7 np.random.seed(seed) #训练网络的几个参数 batch_size=32 num_classes=2 epochs=100 weight_decay=0.0005 learn_rate=0.0001 #读入训练、测试数据,改变大小,显示基本信息 X_train=np.load(open('/image_BRATS_240_240_3_normal.npy',mode='rb')) Y_train=np.load(open('/label_BRATS_240_240_3_normal.npy',mode='rb')) Y_train = keras.utils.to_categorical(Y_train, 2) #搭建神经网络 model_vgg16=VGG16(include_top=False,weights='imagenet',input_shape=(240,240,3),classes=2) model_vgg16.layers.pop() model=Sequential() model.add(model_vgg16) model.add(Flatten(input_shape=X_train.shape[1:])) model.add(Dense(436,activation='relu')) #return x*10的向量 model.add(Dense(2,activation='softmax')) #model(inputs=model_vgg16.input,outputs=predictions) for layer in model_vgg16.layers[:13]: layer.trainable=False model_vgg16.summary() model.compile(optimizer=RMSprop(lr=learn_rate,decay=weight_decay), loss='categorical_crossentropy', metrics=['accuracy']) model.summary() history=LossHistory() model.fit(X_train,Y_train, batch_size=batch_size,epochs=epochs, verbose=1, shuffle=True, validation_split=0.2, callbacks=[history]) #模型评估 history.loss_plot('epoch') 比如: ![实验运行结果:](https://img-ask.csdn.net/upload/201804/19/1524134477_869793.png)

tensorflow训练过程权重不更新,loss不下降,输出保持不变,只有bias在非常缓慢地变化?

模型里没有参数被初始化为0 ,学习率从10的-5次方试到了0.1,输入数据都已经被归一化为了0-1之间,模型是改过的vgg16,有四个输出,使用了vgg16的预训练模型来初始化参数,输出中间结果也没有nan或者inf值。是不是不能自定义损失函数呢?但输出中间梯度发现并不是0,非常奇怪。 **train.py的部分代码** ``` def train(): x = tf.placeholder(tf.float32, [None, 182, 182, 2], name = 'image_input') y_ = tf.placeholder(tf.float32, [None, 8], name='label_input') global_step = tf.Variable(0, trainable=False) learning_rate = tf.train.exponential_decay(learning_rate=0.0001,decay_rate=0.9, global_step=TRAINING_STEPS, decay_steps=50,staircase=True) # 读取图片数据,pos是标签为1的图,neg是标签为0的图 pos, neg = get_data.get_image(img_path) #输入标签固定,输入数据每个batch前4张放pos,后4张放neg label_batch = np.reshape(np.array([1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0]),[1, 8]) vgg = vgg16.Vgg16() vgg.build(x) #loss函数的定义在后面 loss = vgg.side_loss( y_,vgg.output1, vgg.output2, vgg.output3, vgg.output4) train_step = tf.train.AdamOptimizer(learning_rate).minimize(loss, global_step=global_step) init_op = tf.global_variables_initializer() saver = tf.train.Saver() with tf.device('/gpu:0'): with tf.Session() as sess: sess.run(init_op) for i in range(TRAINING_STEPS): #在train.py的其他部分定义了batch_size= 4 start = i * batch_size end = start + batch_size #制作输入数据,前4个是标签为1的图,后4个是标签为0的图 image_list = [] image_list.append(pos[start:end]) image_list.append(neg[start:end]) image_batch = np.reshape(np.array(image_list),[-1,182,182,2]) _,loss_val,step = sess.run([train_step,loss,global_step], feed_dict={x: image_batch,y_:label_batch}) if i % 50 == 0: print("the step is %d,loss is %f" % (step, loss_val)) if loss_val < min_loss: min_loss = loss_val saver.save(sess, 'ckpt/vgg.ckpt', global_step=2000) ``` **Loss 函数的定义** ``` **loss函数的定义(写在了Vgg16类里)** ``` class Vgg16: #a,b,c,d都是vgg模型里的输出,是多输出模型 def side_loss(self,yi,a,b,c,d): self.loss1 = self.f_indicator(yi, a) self.loss2 = self.f_indicator(yi, b) self.loss3 = self.f_indicator(yi, c) self.loss_fuse = self.f_indicator(yi, d) self.loss_side = self.loss1 + self.loss2 + self.loss3 + self.loss_fuse res_loss = tf.reduce_sum(self.loss_side) return res_loss #损失函数的定义,标签为0时为log(1-yj),标签为1时为log(yj) def f_indicator(self,yi,yj): b = tf.where(yj>=1,yj*50,tf.abs(tf.log(tf.abs(1 - yj)))) res=tf.where(tf.equal(yi , 0.0), b,tf.abs(tf.log(tf.clip_by_value(yj, 1e-8, float("inf"))))) return res ```

请问训练完cnn网络,像这种权重图和特征图是怎么弄出来了,怎么会有这么高的分辨率

![权重](https://img-ask.csdn.net/upload/201701/07/1483800716_729501.jpg) ![特征](https://img-ask.csdn.net/upload/201701/07/1483800757_255671.jpg) 现在我对cnn的理解权重应该是那种很小(如:5X5)的卷积核,怎么会有这么清晰的权重图。特征图的效果也特别好,像原图一样,卷积后的特征应该也不是很清晰呀,哪位大神帮我解释一下,有可能我理解上有问题

请大神指点,VGG-16训练时权重不更新,怎么回事??

用tensorflow训练VGG-16时,权重不发生变化是怎么回事?? ``` import tensorflow as tf import scipy.io as sio #import numpy as np import matplotlib.image as mpimg import pickle as cp a = list(sio.loadmat('dataset/corel5k_train_annot.mat')['annot1']) b = list(sio.loadmat('dataset/corel5k_test_annot.mat')['annot2']) def get_batch(image, label, batch_size, now_batch, total_batch): if now_batch < total_batch-1: image_batch = image[now_batch*batch_size:(now_batch+1)*batch_size] label_batch = label[now_batch*batch_size:(now_batch+1)*batch_size] else: image_batch = image[now_batch*batch_size:] label_batch = label[now_batch*batch_size:] #image_batch = tf.reshape(image_batch,[-1,128,128,3]) return image_batch,label_batch train_img = [] with open('image/corel5k_train_list.txt') as f: for i in f.readlines(): train_img += [mpimg.imread('image/%s.jpg'%i.strip())] cp.dump(train_img,open("train.pkl","wb")) test_img = [] with open('image/corel5k_test_list.txt') as f: for i in f.readlines(): test_img += [mpimg.imread('image/%s.jpg'%i.strip())] cp.dump(test_img,open("test.pkl","wb"))#一种保存列表的方式 x = tf.placeholder(tf.float32,[None,128,128,3]) y_ = tf.placeholder(tf.float32, shape=[None, 260]) #loss=tf.Variable(tf.constant(0.0)) #第一 W1 = tf.Variable(tf.truncated_normal([3, 3, 3, 64], mean=0.0,stddev=1.0)) b1 = tf.Variable(tf.constant(0.0, shape=[64])) h1 = tf.nn.relu(tf.nn.conv2d(x, W1, strides=[1, 1, 1, 1], padding='SAME') + b1) #p1 = tf.nn.max_pool(h1, ksize=[1, 2, 2, 1],strides=[1, 2, 2, 1], padding='SAME') W2 = tf.Variable(tf.truncated_normal([3, 3, 64, 64], mean=0.0,stddev=1.0)) b2 = tf.Variable(tf.constant(0.0, shape=[64])) h2 = tf.nn.relu(tf.nn.conv2d(h1, W2, strides=[1, 1, 1, 1], padding='SAME') + b2) p2 = tf.nn.max_pool(h2, ksize=[1, 2, 2, 1],strides=[1, 2, 2, 1], padding='SAME') #第二 W3 = tf.Variable(tf.truncated_normal([3, 3, 64, 128], mean=0.0,stddev=1.0)) b3 = tf.Variable(tf.constant(0.0, shape=[128])) h3 = tf.nn.relu(tf.nn.conv2d(p2, W3, strides=[1, 1, 1, 1], padding='SAME') + b3) #p3 = tf.nn.max_pool(h2, ksize=[1, 2, 2, 1],strides=[1, 2, 2, 1], padding='SAME') W4 = tf.Variable(tf.truncated_normal([3, 3, 128, 128], mean=0.0,stddev=1.0)) b4 = tf.Variable(tf.constant(0.0, shape=[128])) h4 = tf.nn.relu(tf.nn.conv2d(h3, W4, strides=[1, 1, 1, 1], padding='SAME') + b4) p4 = tf.nn.max_pool(h4, ksize=[1, 2, 2, 1],strides=[1, 2, 2, 1], padding='SAME') #第三 W5 = tf.Variable(tf.truncated_normal([3, 3, 128, 256], mean=0.0,stddev=1.0)) b5 = tf.Variable(tf.constant(0.0, shape=[256])) h5 = tf.nn.relu(tf.nn.conv2d(p4, W5, strides=[1, 1, 1, 1], padding='SAME') + b5) W6 = tf.Variable(tf.truncated_normal([3, 3, 256, 256], mean=0.0,stddev=1.0)) b6 = tf.Variable(tf.constant(0.0, shape=[256])) h6 = tf.nn.relu(tf.nn.conv2d(h5, W6, strides=[1, 1, 1, 1], padding='SAME') + b6) W7 = tf.Variable(tf.truncated_normal([3, 3, 256, 256], mean=0.0,stddev=1.0)) b7 = tf.Variable(tf.constant(0.0, shape=[256])) h7 = tf.nn.relu(tf.nn.conv2d(h6, W7, strides=[1, 1, 1, 1], padding='SAME') + b7) p7 = tf.nn.max_pool(h7, ksize=[1, 2, 2, 1],strides=[1, 2, 2, 1], padding='SAME') #第四 W8 = tf.Variable(tf.truncated_normal([3, 3, 256, 512], mean=0.0,stddev=1.0)) b8 = tf.Variable(tf.constant(0.0, shape=[512])) h8 = tf.nn.relu(tf.nn.conv2d(p7, W8, strides=[1, 1, 1, 1], padding='SAME') + b8) W9 = tf.Variable(tf.truncated_normal([3, 3, 512, 512], mean=0.0,stddev=1.0)) b9 = tf.Variable(tf.constant(0.0, shape=[512])) h9 = tf.nn.relu(tf.nn.conv2d(h8, W9, strides=[1, 1, 1, 1], padding='SAME') + b9) W10 = tf.Variable(tf.truncated_normal([3, 3, 512, 512], mean=0.0,stddev=1.0)) b10 = tf.Variable(tf.constant(0.0, shape=[512])) h10 = tf.nn.relu(tf.nn.conv2d(h9, W10, strides=[1, 1, 1, 1], padding='SAME') + b10) p10 = tf.nn.max_pool(h10, ksize=[1, 2, 2, 1],strides=[1, 2, 2, 1], padding='SAME') #第五 W11 = tf.Variable(tf.truncated_normal([3, 3, 512, 512], mean=0.0,stddev=1.0)) b11 = tf.Variable(tf.constant(0.0, shape=[512])) h11 = tf.nn.relu(tf.nn.conv2d(p10, W11, strides=[1, 1, 1, 1], padding='SAME') + b11) W12 = tf.Variable(tf.truncated_normal([3, 3, 512, 512], mean=0.0,stddev=1.0)) b12 = tf.Variable(tf.constant(0.0, shape=[512])) h12 = tf.nn.relu(tf.nn.conv2d(h11, W12, strides=[1, 1, 1, 1], padding='SAME') + b12) W13 = tf.Variable(tf.truncated_normal([3, 3, 512, 512], mean=0.0,stddev=1.0)) b13 = tf.Variable(tf.constant(0.0, shape=[512])) h13 = tf.nn.relu(tf.nn.conv2d(h12, W13, strides=[1, 1, 1, 1], padding='SAME') + b13) p13 = tf.nn.max_pool(h13, ksize=[1, 2, 2, 1],strides=[1, 2, 2, 1], padding='SAME') W_fc1 = tf.Variable(tf.truncated_normal([4*4*512, 4096], mean=0.0,stddev=1.0)) b_fc1 = tf.Variable(tf.constant(0.0, shape=[4096])) h_pool2_flat = tf.reshape(p13, [-1, 4*4*512]) h_fc1 = tf.nn.relu(tf.matmul(h_pool2_flat, W_fc1) + b_fc1) keep_prob1 = tf.placeholder(tf.float32) h_fc1_drop = tf.nn.dropout(h_fc1, keep_prob1) W_fc2 = tf.Variable(tf.truncated_normal([4096, 4096], mean=0.0,stddev=1.0)) b_fc2 = tf.Variable(tf.constant(0.0, shape=[4096])) h_fc2 = tf.nn.relu(tf.matmul(h_fc1_drop, W_fc2) + b_fc2) keep_prob2 = tf.placeholder(tf.float32) h_fc2_drop = tf.nn.dropout(h_fc2, keep_prob2) W_fc3 = tf.Variable(tf.truncated_normal([4096, 260], mean=0.0,stddev=1.0)) b_fc3 = tf.Variable(tf.constant(0.0, shape=[260])) y_conv=tf.nn.softmax(tf.matmul(h_fc2_drop, W_fc3) + b_fc3) loss = tf.reduce_mean(-tf.reduce_sum(y_*tf.log(y_conv + 1e-10), reduction_indices=[1])) train_step = tf.train.AdamOptimizer(0.1).minimize(loss) with tf.Session() as sess: sess.run(tf.global_variables_initializer()) for v in range(100): for r in range(90): image_batch,label_batch = get_batch(train_img,a,50,r,90) sess.run(train_step,feed_dict={x:image_batch,y_:label_batch,keep_prob1: 0.5,keep_prob2: 0.5}) print(sess.run(W_fc3)) print("*") test_batch,testlabel_batch = get_batch(test_img,b,50,0,2) print(sess.run(loss,feed_dict={x:test_batch,y_:testlabel_batch,keep_prob1: 1,keep_prob2: 1})) ```

【python】【神经网络】请教各位大牛用神经网络解决XOR的一些问题

大家好,我尝试自己写了一个神经网络来做XOR的例子,但是输出结果始终不如人意,不知问题出在哪里?望各位大牛解答! 先附上循环10次的输出结果: [[ 0.63892076] [ 0.67854515] [ 0.6880628 ] [ 0.71555396]] 以下是代码: ``` # -*- coding: utf-8 -*- """ Created on Wed Oct 18 23:29:20 2017 @author: 32641 """ import numpy as np def sigmoid(x): result=1/(1+np.exp(-x)) return result #此函数是为了计算梯度用 def matrix_X(X,Y): l1=[] for n in range(len(Y)): l=[] for x in X[n]: for y in Y[n]: l.append(x*y) l1.append(l) return np.array(l1) #初始化 X=np.array([[0,0],[1,0],[0,1],[1,1]],dtype=np.float32) Y=np.array([1,0,0,1],dtype=np.float32).reshape(4,1) V=np.random.rand(2,2) W=np.random.rand(2,1) b1=np.tile(np.zeros((1,2)),(4,1)) b2=np.tile(np.zeros((1,1)),(1,1)) D=np.dot(X,V)+b1 O=np.dot(sigmoid(D),W)+b2 output=sigmoid(O) error=np.sum(np.square(Y-output)) #backward for n in range(10): #求导 gradient_w=np.sum((Y-output)*sigmoid(O)*(1-sigmoid(O))*sigmoid(D),axis=0).reshape((2,1)) gradient_b2=np.sum((Y-output)*sigmoid(O)*(1-sigmoid(O)),axis=0).reshape((1,1)) gradient_v=np.sum(matrix_X(X,(Y-output)*sigmoid(O)*(1-sigmoid(O))*sigmoid(D)*(1-sigmoid(D))),axis=0).reshape((2,2)) gradient_b1=np.sum((Y-output)*sigmoid(O)*(1-sigmoid(O))*sigmoid(D)*(1-sigmoid(D)),axis=0).reshape((1,2)) η=0.01 W=W+η*gradient_w b2=b2-η*np.tile(gradient_b2,(1,1)) V=V-η*gradient_v b1=b1-η*np.tile(gradient_b1,(4,1)) D=np.dot(X,V)+b1 O=np.dot(sigmoid(D),W)+b2 output=sigmoid(O) error=np.sum(np.square(Y-output)) print(error) print(output) ```

bp神经网络的参数问题

都说bp神经网络有45个参数,这45个参数到底是什么,我是一个新手,在此求教,谢谢各位大神了!

求助:(Pytorch)resnet加载预训练好的模型finetune时conv、bn层权重均不更新,为什么呢?

在resnet先进行了预训练后,根据预训练权重进行剪枝,再加载剪枝后模型及权重后,对模型进行finetune时,发现conv、bn层的权重均没有更新。尝试改变学习率后对结果没有影响。 p.requires_grad: True net.stage_1[0].bn_a.track_running_stats: True net.stage_1[0].bn_a.training: False 上面的情况,finetune与train时都一致,没有变化。 finetune代码与train代码其实没有什么区别,只不过一个前者加载了个模型而已,为什么后者可以正常更新权重,前者却不可以?还可能是什么原因呢?

TensorFlow如何在训练过程中获取权重值

比如一个两层卷积的网络,我想在每次训练的时候输出第一层卷积的权重值矩阵的数值,来观察随着训练的进行权重值如何更新。请问代码如何实现?

MATLAB 神经网络工具箱 GUI里 如何权值阈值初始化???

用 nntools 根本看不到权值阈值怎么选择啊? 我用的BP神经网络做预测,求大神解答如何权值初始化??

谁有java版的神经网络程序

我写了一个神经网络程序,感觉是按照神经网络的步骤写下去的,结果当训练的样本很多或者学习次数很多,网络的权值和阈值都成了NaN

神经网络模型加载后测试效果不对

tensorflow框架训练好的神经网络模型,加载之后再去测试准确率特别低 图中是我的加载方法 麻烦大神帮忙指正,是不是网络加载出现问题 首先手动重新构建了模型:以下代码省略了权值、偏置和网络搭建 ``` # 构建模型 pred = alex_net(x, weights, biases, keep_prob) # 定义损失函数和优化器 cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits_v2(labels=y,logits=pred))#softmax和交叉熵结合 optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(cost) # 评估函数 correct_pred = tf.equal(tf.argmax(pred, 1), tf.argmax(y, 1)) accuracy = tf.reduce_mean(tf.cast(correct_pred, tf.float32)) # 3.训练模型和评估模型 # 初始化变量 init = tf.global_variables_initializer() saver = tf.train.Saver() with tf.Session() as sess: # 初始化变量 sess.run(init) saver.restore(sess, tf.train.latest_checkpoint(model_dir)) pred_test=sess.run(pred,{x:test_x, keep_prob:1.0}) result=sess.run(tf.argmax(pred_test, 1)) ```

BP神经网络模型,如果要预测数据,是每一个数据都迭代N次吗?

比如,以下例子: 某地区20年公路运量数据 年份 人口数量 机动车数量 公路面积 公路客运量 公路货运量 1990 20.55 0.6 0.09 5126 1237 1991 22.44 0.75 0.11 6217 1379 1992 25.37 0.85 0.11 7730 1385 1993 27.13 0.90 0.14 9145 1399 1994 29.45 1.05 0.20 10460 1663 1995 30.1 1.35 0.23 11387 1714 1996 30.96 1.45 0.23 12353 1834 1997 34.06 1.60 0.32 15750 4322 1998 36.42 1.70 0.32 18304 8132 1999 38.09 1.85 0.34 19836 8936 2000 39.13 2.15 0.36 21024 11099 2001 39.99 2.20 0.36 19490 11203 2002 41.93 2.25 0.38 20433 10524 2003 44.59 2.35 0.49 22598 11115 2004 47.30 2.50 0.56 ? ? 2005 52.89 2.60 0.59 ? ? 题目的要求要我们预测2004和2005两年的公路客运量与公路货运量。 首先,我现在已经清楚了BP神经网络的原理,包括正向传播反向传播激励函数等等,我自己也编写了一套BP神经网络的运算程序。现在我只想搞清楚一个简单的问题,对于这个实例,具体的运算步骤,是否是将人口数量、机动车数量以及公路面积作为3个输入层节点,隐藏层节点数就自己定了,输出层节点是公路客运量和公路货运量2个节点。那么我如果设置学习迭代次数为1000次。步骤是否是:对1990年的数据进行迭代1000次的学习,然后再对1991年的数据进行迭代1000次学习,对1991年初始权重值和偏值为1990年迭代1000次后最终更新的各节点的权重值和偏值,然后依次往下,即每年都会迭代1000次学习。 各位一定看懂我的问题,不要答非所问

卷积神经网络中卷积核权值是怎么计算梯度的?

卷积神经网络中卷积核权值是怎么计算梯度的?希望详细一点,知道链式法则,可是反向传播到了卷积操作这里,卷积操作后得到矩阵怎么对卷积核里的各权值求导有点迷糊?望大神不吝赐教~!

bp神经网络不能正常分类

``` import numpy as np import sklearn from sklearn import datasets from matplotlib import pyplot as plt class Config: eta=0.003#学习率 input_dim=2#输入层神经元个数,即样本的特征数,这里是横纵坐标 hidden_dim=3#隐层神经元个数 output_dim=2#输出层神经元个数,分别代表P(y=0)与P(y=1),取较大者为数据点的分类 N=200#训练集样本数 def generate_data(): np.random.seed(0) X,Y=sklearn.datasets.make_moons(Config.N,noise=0.20)#大小为N的二分类非线性可分数据集 return X,Y def softmax(z):#输出层softmax函数,输出为yhat。为了数值稳定防止溢出,进行平移。 z-=np.max(z) return np.exp(z)/np.sum(np.exp(z)) def predict(x,model): ''' 得到预测输出 ''' p=np.dot(x,model['v'])+model['b']#隐层输入 a=np.tanh(p)#隐层输出 z=np.dot(a,model['w'])+model['c']#输出层输入 yhat=softmax(z)#输出层输出(概率) return np.argmax(yhat,axis=1),yhat#选概率大的作为分类 def CrossEntropyLoss(y,yhat):#单个样本交叉熵损失函数 return -np.sum(y*np.log(yhat)) def totalLoss(X,Y,model):#训练集总损失 Loss=0.0 for i in range(len(X)): ypred,yhat=predict(X[i],model) Loss+=CrossEntropyLoss(Y[i],yhat) return Loss/len(X) def build_model(X,Y,iters): ''' 在[0,1)区间内随机初始化连接权重与阈值 ''' v=np.random.random((Config.input_dim,Config.hidden_dim))#输入层到隐层的连接权重 w=np.random.random((Config.hidden_dim,Config.output_dim))#隐层到输出层的连接权重 b=np.random.random((1,Config.hidden_dim))#隐层的阈值 c=np.random.random((1,Config.output_dim))#输出层的阈值 model={} for t in range(iters): for i in range(len(X)):#一个训练样本就更新一次参数 #forward propagation p=np.dot(X[i],v)+b#隐层输入 a=np.tanh(p)#隐层输出 z=np.dot(a,w)+c#输出层输入 yhat=softmax(z)#输出层输出(概率) #back propagation g=yhat-Y[i]#输出层梯度 w+=-Config.eta*np.dot(a.transpose(),g)#更新隐层到输出层的连接权重 c+=-Config.eta*g#更新输出层的阈值 h=np.dot(g,w.transpose())*(1-np.power(a,2))#隐层梯度 v+=-Config.eta*np.dot(np.array([X[i]]).transpose(),h)#更新输入层到隐层的连接权重 b+=-Config.eta*h#更新隐层的阈值 model={'v': v, 'w': w, 'b': b, 'c': c} if(t%100==0): print "after",t,"iteration:",totalLoss(X,Y,model) return model def plot_decision_boundary(pred_func,X,Y): #设置最小最大值, 加上一点外边界 x_min,x_max=X[:,0].min()-.5,X[:,0].max()+.5 y_min,y_max=X[:,1].min()-.5,X[:,1].max()+.5 h=0.01 # 根据最小最大值和一个网格距离生成整个网格 xx,yy=np.meshgrid(np.arange(x_min,x_max,h),np.arange(y_min,y_max,h)) # 对整个网格预测边界值 Z,Yhat=pred_func(np.c_[xx.ravel(),yy.ravel()]) Z=Z.reshape(xx.shape) # 绘制边界和数据集的点 plt.contourf(xx,yy,Z,cmap=plt.cm.Spectral) plt.scatter(X[:,0],X[:,1],c=Y,cmap=plt.cm.Spectral) def NN(): X,Y=generate_data()#产生数据集 model=build_model(X,Y,1500)#建立神经网络模型,iters为迭代次数 plot_decision_boundary(lambda x: predict(x,model),X,Y) plt.title("Decision Boundary for hidden layer size %d" %Config.hidden_dim) plt.show() if __name__ == "__main__": NN() ``` 求解!!

卷积神经网络里,卷积核如何更新,求梯度

如何求卷积核中参数的梯度, (典型的BP网络我会做,但是这个卷积核因为权值共享就搞不懂如何求了。看了很多博文,仍然不明白)

卷积神经网络如何初始化与调整卷积核参数

卷积神经网络,个数,维数是根据经验,请问初始化怎样,听说是初始化为很小值,请问 又根据什么调整卷积核的参数呢?

linux下利用/proc进行进程树的打印

在linux下利用c语言实现的进程树的打印,主要通过/proc下的目录中的进程文件,获取status中的进程信息内容,然后利用递归实现进程树的打印

设计模式(JAVA语言实现)--20种设计模式附带源码

课程亮点: 课程培训详细的笔记以及实例代码,让学员开始掌握设计模式知识点 课程内容: 工厂模式、桥接模式、组合模式、装饰器模式、外观模式、享元模式、原型模型、代理模式、单例模式、适配器模式 策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式 课程特色: 笔记设计模式,用笔记串连所有知识点,让学员从一点一滴积累,学习过程无压力 笔记标题采用关键字标识法,帮助学员更加容易记住知识点 笔记以超链接形式让知识点关联起来,形式知识体系 采用先概念后实例再应用方式,知识点深入浅出 提供授课内容笔记作为课后复习以及工作备查工具 部分图表(电脑PC端查看):

Python数据分析与挖掘

92讲视频课+16大项目实战+源码+¥800元课程礼包+讲师社群1V1答疑+社群闭门分享会=99元 &nbsp; 为什么学习数据分析? &nbsp; &nbsp; &nbsp; 人工智能、大数据时代有什么技能是可以运用在各种行业的?数据分析就是。 &nbsp; &nbsp; &nbsp; 从海量数据中获得别人看不见的信息,创业者可以通过数据分析来优化产品,营销人员可以通过数据分析改进营销策略,产品经理可以通过数据分析洞察用户习惯,金融从业者可以通过数据分析规避投资风险,程序员可以通过数据分析进一步挖掘出数据价值,它和编程一样,本质上也是一个工具,通过数据来对现实事物进行分析和识别的能力。不管你从事什么行业,掌握了数据分析能力,往往在其岗位上更有竞争力。 &nbsp;&nbsp; 本课程共包含五大模块: 一、先导篇: 通过分析数据分析师的一天,让学员了解全面了解成为一个数据分析师的所有必修功法,对数据分析师不在迷惑。 &nbsp; 二、基础篇: 围绕Python基础语法介绍、数据预处理、数据可视化以及数据分析与挖掘......这些核心技能模块展开,帮助你快速而全面的掌握和了解成为一个数据分析师的所有必修功法。 &nbsp; 三、数据采集篇: 通过网络爬虫实战解决数据分析的必经之路:数据从何来的问题,讲解常见的爬虫套路并利用三大实战帮助学员扎实数据采集能力,避免没有数据可分析的尴尬。 &nbsp; 四、分析工具篇: 讲解数据分析避不开的科学计算库Numpy、数据分析工具Pandas及常见可视化工具Matplotlib。 &nbsp; 五、算法篇: 算法是数据分析的精华,课程精选10大算法,包括分类、聚类、预测3大类型,每个算法都从原理和案例两个角度学习,让你不仅能用起来,了解原理,还能知道为什么这么做。

广工操作系统课程设计(文档+代码+可执行文件)

实现作业调度(先来先服务)、进程调度功能(时间片轮转) 实现内存管理功能(连续分配)。 实现文件系统功能(选作) 这些功能要有机地连接起来

Only老K说-爬取妹子图片(简单入门)

安装第三方请求库 requests 被网站禁止了访问 原因是我们是Python过来的 重新给一段 可能还是存在用不了,使用网页的 编写代码 上面注意看匹配内容 User-Agent:请求对象 AppleWebKit:请求内核 Chrome浏览器 //请求网页 import requests import re //正则表达式 就是去不规则的网页里面提取有规律的信息 headers = { 'User-Agent':'存放浏览器里面的' } response = requests.get

linux“开发工具三剑客”速成攻略

工欲善其事,必先利其器。Vim+Git+Makefile是Linux环境下嵌入式开发常用的工具。本专题主要面向初次接触Linux的新手,熟练掌握工作中常用的工具,在以后的学习和工作中提高效率。

Python代码实现飞机大战

文章目录经典飞机大战一.游戏设定二.我方飞机三.敌方飞机四.发射子弹五.发放补给包六.主模块 经典飞机大战 源代码以及素材资料(图片,音频)可从下面的github中下载: 飞机大战源代码以及素材资料github项目地址链接 ————————————————————————————————————————————————————————— 不知道大家有没有打过飞机,喜不喜欢打飞机。当我第一次接触这个东西的时候,我的内心是被震撼到的。第一次接触打飞机的时候作者本人是身心愉悦的,因为周边的朋友都在打飞机, 每

Python数据清洗实战入门

本次课程主要以真实的电商数据为基础,通过Python详细的介绍了数据分析中的数据清洗阶段各种技巧和方法。

2019 Python开发者日-培训

本次活动将秉承“只讲技术,拒绝空谈”的理念,邀请十余位身处一线的Python技术专家,重点围绕Web开发、自动化运维、数据分析、人工智能等技术模块,分享真实生产环境中使用Python应对IT挑战的真知灼见。此外,针对不同层次的开发者,大会还安排了深度培训实操环节,为开发者们带来更多深度实战的机会。

apache-jmeter-5.1.1(Requires Java 8+).zip

。Apache JMeter 5.1.1 (Requires Java 8+),需要jdk8以上的版本。

数通HCNP中文理论全套教材.rar

内涵HCNP-IENP中文理论书-内文,

Python可以这样学(第四季:数据分析与科学计算可视化)

董付国老师系列教材《Python程序设计(第2版)》(ISBN:9787302436515)、《Python可以这样学》(ISBN:9787302456469)配套视频,在教材基础上又增加了大量内容,通过实例讲解numpy、scipy、pandas、statistics、matplotlib等标准库和扩展库用法。

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

我以为我对Mysql事务很熟,直到我遇到了阿里面试官

太惨了,面试又被吊打

2019 AI开发者大会

2019 AI开发者大会(AI ProCon 2019)是由中国IT社区CSDN主办的AI技术与产业年度盛会。多年经验淬炼,如今蓄势待发:2019年9月6-7日,大会将有近百位中美顶尖AI专家、知名企业代表以及千余名AI开发者齐聚北京,进行技术解读和产业论证。我们不空谈口号,只谈技术,诚挚邀请AI业内人士一起共铸人工智能新篇章!

图书管理系统(Java + Mysql)我的第一个完全自己做的实训项目

图书管理系统 Java + MySQL 完整实训代码,MVC三层架构组织,包含所有用到的图片资源以及数据库文件,大三上学期实训,注释很详细,按照阿里巴巴Java编程规范编写

Python数据挖掘简易入门

&nbsp; &nbsp; &nbsp; &nbsp; 本课程为Python数据挖掘方向的入门课程,课程主要以真实数据为基础,详细介绍数据挖掘入门的流程和使用Python实现pandas与numpy在数据挖掘方向的运用,并深入学习如何运用scikit-learn调用常用的数据挖掘算法解决数据挖掘问题,为进一步深入学习数据挖掘打下扎实的基础。

C/C++学习指南全套教程

C/C++学习的全套教程,从基本语法,基本原理,到界面开发、网络开发、Linux开发、安全算法,应用尽用。由毕业于清华大学的业内人士执课,为C/C++编程爱好者的教程。

微信公众平台开发入门

本套课程的设计完全是为初学者量身打造,课程内容由浅入深,课程讲解通俗易懂,代码实现简洁清晰。通过本课程的学习,学员能够入门微信公众平台开发,能够胜任企业级的订阅号、服务号、企业号的应用开发工作。 通过本课程的学习,学员能够对微信公众平台有一个清晰的、系统性的认识。例如,公众号是什么,它有什么特点,它能做什么,怎么开发公众号。 其次,通过本课程的学习,学员能够掌握微信公众平台开发的方法、技术和应用实现。例如,开发者文档怎么看,开发环境怎么搭建,基本的消息交互如何实现,常用的方法技巧有哪些,真实应用怎么开发。

三个项目玩转深度学习(附1G源码)

从事大数据与人工智能开发与实践约十年,钱老师亲自见证了大数据行业的发展与人工智能的从冷到热。事实证明,计算机技术的发展,算力突破,海量数据,机器人技术等,开启了第四次工业革命的序章。深度学习图像分类一直是人工智能的经典任务,是智慧零售、安防、无人驾驶等机器视觉应用领域的核心技术之一,掌握图像分类技术是机器视觉学习的重中之重。针对现有线上学习的特点与实际需求,我们开发了人工智能案例实战系列课程。打造:以项目案例实践为驱动的课程学习方式,覆盖了智能零售,智慧交通等常见领域,通过基础学习、项目案例实践、社群答疑,三维立体的方式,打造最好的学习效果。

2021考研数学张宇基础30讲.pdf

张宇:博士,全国著名考研数学辅导专家,教育部“国家精品课程建设骨干教师”,全国畅销书《张宇高等数学18讲》《张宇线性代数9讲》《张宇概率论与数理统计9讲》《张宇考研数学题源探析经典1000题》《张宇考

专为程序员设计的数学课

<p> 限时福利限时福利,<span>15000+程序员的选择!</span> </p> <p> 购课后添加学习助手(微信号:csdn590),按提示消息领取编程大礼包!并获取讲师答疑服务! </p> <p> <br> </p> <p> 套餐中一共包含5门程序员必学的数学课程(共47讲) </p> <p> 课程1:《零基础入门微积分》 </p> <p> 课程2:《数理统计与概率论》 </p> <p> 课程3:《代码学习线性代数》 </p> <p> 课程4:《数据处理的最优化》 </p> <p> 课程5:《马尔可夫随机过程》 </p> <p> <br> </p> <p> 哪些人适合学习这门课程? </p> <p> 1)大学生,平时只学习了数学理论,并未接触如何应用数学解决编程问题; </p> <p> 2)对算法、数据结构掌握程度薄弱的人,数学可以让你更好的理解算法、数据结构原理及应用; </p> <p> 3)看不懂大牛代码设计思想的人,因为所有的程序设计底层逻辑都是数学; </p> <p> 4)想学习新技术,如:人工智能、机器学习、深度学习等,这门课程是你的必修课程; </p> <p> 5)想修炼更好的编程内功,在遇到问题时可以灵活的应用数学思维解决问题。 </p> <p> <br> </p> <p> 在这门「专为程序员设计的数学课」系列课中,我们保证你能收获到这些:<br> <br> <span> </span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">①价值300元编程课程大礼包</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">②应用数学优化代码的实操方法</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">③数学理论在编程实战中的应用</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">④程序员必学的5大数学知识</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">⑤人工智能领域必修数学课</span> </p> <p> <br> 备注:此课程只讲程序员所需要的数学,即使你数学基础薄弱,也能听懂,只需要初中的数学知识就足矣。<br> <br> 如何听课? </p> <p> 1、登录CSDN学院 APP 在我的课程中进行学习; </p> <p> 2、登录CSDN学院官网。 </p> <p> <br> </p> <p> 购课后如何领取免费赠送的编程大礼包和加入答疑群? </p> <p> 购课后,添加助教微信:<span> csdn590</span>,按提示领取编程大礼包,或观看付费视频的第一节内容扫码进群答疑交流! </p> <p> <img src="https://img-bss.csdn.net/201912251155398753.jpg" alt=""> </p>

DDR5_Draft_Spec_Rev05c.pdf

DDR5 spec

Java面试史上最全的JAVA专业术语面试100问 (前1-50)

前言: 说在前面, 面试题是根据一些朋友去面试提供的,再就是从网上整理了一些。 先更新50道,下一波吧后面的也更出来。 求赞求关注!! 废话也不多说,现在就来看看有哪些面试题 1、面向对象的特点有哪些? 抽象、继承、封装、多态。 2、接口和抽象类有什么联系和区别? 3、重载和重写有什么区别? 4、java有哪些基本数据类型? 5、数组有没有length()方法?String有没有length()方法? 数组没有length()方法,它有length属性。 String有length()方法。 集合求长度用

网络工程师小白入门--【思科CCNA、华为HCNA等网络工程师认证】

本课程适合CCNA或HCNA网络小白同志,高手请绕道,可以直接学习进价课程。通过本预科课程的学习,为学习网络工程师、思科CCNA、华为HCNA这些认证打下坚实的基础! 重要!思科认证2020年2月24日起,已启用新版认证和考试,包括题库都会更新,由于疫情原因,请关注官网和本地考点信息。题库网络上很容易下载到。

C/C++跨平台研发从基础到高阶实战系列套餐

一 专题从基础的C语言核心到c++ 和stl完成基础强化; 二 再到数据结构,设计模式完成专业计算机技能强化; 三 通过跨平台网络编程,linux编程,qt界面编程,mfc编程,windows编程,c++与lua联合编程来完成应用强化 四 最后通过基于ffmpeg的音视频播放器,直播推流,屏幕录像,

Python界面版学生管理系统

前不久上传了一个控制台版本的学生管理系统,这个是Python界面版学生管理系统,这个是使用pycharm开发的一个有界面的学生管理系统,基本的增删改查,里面又演示视频和完整代码,有需要的伙伴可以自行下

2019数学建模A题高压油管的压力控制 省一论文即代码

2019数学建模A题高压油管的压力控制省一完整论文即详细C++和Matlab代码,希望对同学们有所帮助

4小时玩转微信小程序——基础入门与微信支付实战

这是一个门针对零基础学员学习微信小程序开发的视频教学课程。课程采用腾讯官方文档作为教程的唯一技术资料来源。杜绝网络上质量良莠不齐的资料给学员学习带来的障碍。 视频课程按照开发工具的下载、安装、使用、程序结构、视图层、逻辑层、微信小程序等几个部分组织课程,详细讲解整个小程序的开发过程

相关热词 c#分级显示数据 c# 不区分大小写替换 c#中调用就java c#正则表达式 验证小数 c# vscode 配置 c#三维数组能存多少数据 c# 新建excel c#多个文本框 c#怎么创建tcp通讯 c# mvc 电子病例
立即提问