模型训练后,进行识别时,权重不一致,怎么修改? 5C

通过ModelTraining 训练的生成模型

 from imageai.Prediction.Custom import ModelTraining
model_trainer = ModelTraining()
model_trainer.setModelTypeAsResNet()
model_trainer.setDataDirectory("datasets")

# batch_size  训练类别的整除数
model_trainer.trainModel(num_objects=4, num_experiments=10, enhance_data=True, batch_size=2, show_network_summary=True)

当与imageai的模型世界时报错

 # from imageai.Detection import ObjectDetection
# import os
# import time
# #计时
# start = time.time()
# execution_path = os.getcwd()
#
# detector = ObjectDetection()
# detector.setModelTypeAsRetinaNet()
#
# #载入已训练好的文件
# detector.setModelPath( os.path.join(execution_path , "model_weights.h5"))
# detector.loadModel('fastest')
#
# #将检测后的结果保存为新图片
# detections = detector.detectObjectsFromImage(input_image=os.path.join(execution_path , "./img/one.jpg"), output_image_path=os.path.join(execution_path , "./img/image3new.jpg"))
#
# #结束计时
# end = time.time()
#
# for eachObject in detections:
#     print(eachObject["name"] + " : " + eachObject["percentage_probability"] )
#     print("--------------------------------")
#
# print ("\ncost time:",end-start)


#!/usr/bin/env python3
from imageai.Detection import ObjectDetection
import os

execution_path = os.getcwd()

detector = ObjectDetection()
detector.setModelTypeAsRetinaNet()
detector.setModelPath(os.path.join(execution_path , "./models/model_ex-010_acc-0.250000.h5"))
detector.loadModel()

detections = detector.detectObjectsFromImage(input_image=os.path.join(execution_path , "img/one.jpg"), output_image_path=os.path.join(execution_path , "image3new.jpg"), minimum_percentage_probability=30)

for eachObject in detections:
    print(eachObject["name"] , " : ", eachObject["percentage_probability"])
    print("--------------------------------")

运行时报错:
ValueError: You are trying to load a weight file containing 107 layers into a model with 116 layers.

应该怎么修改让他们可以进行识别

3个回答

你是不是保存了模型以后又修改了模型,两个不一致,只能重新训练了。

我也遇到了相同的问题,我们训练的只是图像预测的模型不能用于对象检测

不知道这个问题解决没有,来回答一下吧,下式三选一,与自己选的模型(官方)对应就行了
detector.setModelTypeAsTinyYOLOv3()
detector.setModelTypeAsYOLOv3()#
detector.setModelTypeAsRetinaNet()#

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
求助:(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对权重进行训练后将权重的值打印出来发现每次训练后权重的值没有发生变化?

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

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 ```

tensorflow如何在每一次训练后都重置部分权重的值?

看了CSDN的一些博客但是但是感觉不得要领,好像都是在说重载某一层的权重,那如果要重置同一层中的部分权重,其他则保持一样又该如何呢?跪求大佬教教我!

请大神指点,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})) ```

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

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

pytorch自定义初始化权重后模型loss一直在2点几

``` class Net(nn.Module): def __init__(self): super(Net,self).__init__() self.conv1 = nn.Conv2d(3,64,3,padding=1,bias=False) self.conv2 = nn.Conv2d(64,64,3,padding=1,bias=False) self.pool1 = nn.MaxPool2d(2, 2) self.bn1 = nn.BatchNorm2d(64) self.relu1 = nn.ReLU() self.conv3 = nn.Conv2d(64,128,3,padding=1,bias=False) self.conv4 = nn.Conv2d(128, 128, 3,padding=1,bias=False) self.pool2 = nn.MaxPool2d(2, 2, padding=1) self.bn2 = nn.BatchNorm2d(128) self.relu2 = nn.ReLU() self.conv5 = nn.Conv2d(128,128, 3,padding=1,bias=False) self.conv6 = nn.Conv2d(128, 128, 3,padding=1,bias=False) self.conv7 = nn.Conv2d(128, 128, 1,padding=1,bias=False) self.pool3 = nn.MaxPool2d(2, 2, padding=1) self.bn3 = nn.BatchNorm2d(128) self.relu3 = nn.ReLU() self.conv8 = nn.Conv2d(128, 256, 3,padding=1,bias=False) self.conv9 = nn.Conv2d(256, 256, 3, padding=1,bias=False) self.conv10 = nn.Conv2d(256, 256, 1, padding=1,bias=False) self.pool4 = nn.MaxPool2d(2, 2, padding=1) self.bn4 = nn.BatchNorm2d(256) self.relu4 = nn.ReLU() self.conv11 = nn.Conv2d(256, 512, 3, padding=1,bias=False) self.conv12 = nn.Conv2d(512, 512, 3, padding=1,bias=False) self.conv13 = nn.Conv2d(512, 512, 1, padding=1,bias=False) self.pool5 = nn.MaxPool2d(2, 2, padding=1) self.bn5 = nn.BatchNorm2d(512) self.relu5 = nn.ReLU() self.fc14 = nn.Linear(512*4*4,1024) self.drop1 = nn.Dropout2d() self.fc15 = nn.Linear(1024,1024) self.drop2 = nn.Dropout2d() self.fc16 = nn.Linear(1024,10) def forward(self,x): x = self.conv1(x) x = self.conv2(x) x = self.pool1(x) x = self.bn1(x) x = self.relu1(x) x = self.conv3(x) x = self.conv4(x) x = self.pool2(x) x = self.bn2(x) x = self.relu2(x) x = self.conv5(x) x = self.conv6(x) x = self.conv7(x) x = self.pool3(x) x = self.bn3(x) x = self.relu3(x) x = self.conv8(x) x = self.conv9(x) x = self.conv10(x) x = self.pool4(x) x = self.bn4(x) x = self.relu4(x) x = self.conv11(x) x = self.conv12(x) x = self.conv13(x) x = self.pool5(x) x = self.bn5(x) x = self.relu5(x) # print(" x shape ",x.size()) x = x.view(-1,512*4*4) x = F.relu(self.fc14(x)) x = self.drop1(x) x = F.relu(self.fc15(x)) x = self.drop2(x) x = self.fc16(x) return x model = Net() #model = torch.nn.DataParallel(model) if t.cuda.is_available(): model.cuda() print(model) # torchvision输出的是PILImage,值的范围是[0, 1]. # 我们将其转化为tensor数据,并归一化为[-1, 1]。 transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5)), ]) # 训练集,将相对目录./data下的cifar-10-batches-py文件夹中的全部数据(50000张图片作为训练数据)加载到内存中,若download为True时,会自动从网上下载数据并解压 trainset = torchvision.datasets.CIFAR10(root='./data', train=True, download=False, transform=transform) # 将训练集的50000张图片划分成12500份,每份4张图,用于mini-batch输入。shffule=True在表示不同批次的数据遍历时,打乱顺序。num_workers=2表示使用两个子进程来加载数据 trainloader = torch.utils.data.DataLoader(trainset, batch_size=100, shuffle=False, num_workers=1) #测试集,将相对目录./data下的cifar-10-batches-py文件夹中的全部数据(10000张图片作为测试数据)加载到内存中,若download为True时,会自动从网上下载数据并解压 testset = torchvision.datasets.CIFAR10(root='./data', train=False, download=False, transform=transform) # 将测试集的10000张图片划分成2500份,每份4张图,用于mini-batch输入。 testloader = torch.utils.data.DataLoader(testset, batch_size=50, shuffle=False, num_workers=1) criterion = nn.CrossEntropyLoss()#叉熵损失函数 optimizer = optim.SGD(model.parameters(), lr=0.001, momentum=0.9)#使用SGD(随机梯度下降)优化,学习率为0.001,动量为0.9 for epoch in range(1): # 遍历数据集10次 running_loss = 0.0 # enumerate(sequence, [start=0]),i序号,data是数据 for i, data in enumerate(trainloader, 0): #for i in range(1000): # get the inputs #data is list inputs, labels = data # data的结构是:[4x3x32x32的张量,长度4的张量] # wrap them in Variable inputs = Variable(inputs) labels=Variable(labels)# 把input数据从tensor转为variable if t.cuda.is_available(): inputs=inputs.cuda() labels=labels.cuda() #inputs,labels= inputs.type(torch.FloatTensor),labels.type(torch.FloatTensor) # zero the parameter gradients optimizer.zero_grad() # 将参数的grad值初始化为0 # forward + backward + optimize outputs = model(inputs) loss = criterion(outputs, labels) # 将output和labels使用叉熵计算损失 loss.backward() # 反向传播 optimizer.step() # 用SGD更新参数 # 每2000批数据打印一次平均loss值 running_loss += loss.item() # loss本身为Variable类型,所以要使用data获取其Tensor,因为其为标量,所以取0 或使用loss.item() if i % 500 == 499: # 每2000批打印一次 print('[%d, %5d] loss: %.3f' % (epoch + 1, i + 1, running_loss / 500)) running_loss = 0.0 print('Finished Training') start = time.clock()#.time correct = 0 total = 0 for data in testloader: images, labels = data images=images.cuda() labels=labels.cuda() outputs = model(Variable(images)) print(outputs.shape) _, predicted = torch.max(outputs.data, 1) total += labels.size(0) correct += (predicted == labels).sum() print('Accuracy of the network on the 10000 test images: %d %%' % ( 100 * correct / total)) end = time.clock()#.time print("Running time: %s Seconds" % (end-start)) weight0=np.random.random((64,3,3,3)) weight0=nn.Parameter(torch.FloatTensor(weight0).cuda(),requires_grad=True) #weight1=np.random.random((64,64,3,3),dtype=np.float32) weight1=np.random.random((64,64,3,3)) weight1=nn.Parameter(torch.FloatTensor(weight1).cuda(),requires_grad=True) weight2=np.random.random((128,64,3,3)) weight2=nn.Parameter(torch.FloatTensor(weight2).cuda(),requires_grad=True) weight3=np.random.random((128,128,3,3)) weight3=nn.Parameter(torch.FloatTensor(weight3).cuda(),requires_grad=True) weight4=np.random.random((128,128,3,3)) weight4=nn.Parameter(torch.FloatTensor(weight4).cuda(),requires_grad=True) weight5=np.random.random((128,128,3,3)) weight5=nn.Parameter(torch.FloatTensor(weight5).cuda(),requires_grad=True) weight6=np.random.random((128,128,1,1)) weight6=nn.Parameter(torch.FloatTensor(weight6).cuda(),requires_grad=True) weight7=np.random.random((256,128,3,3)) weight7=nn.Parameter(torch.FloatTensor(weight7).cuda(),requires_grad=True) weight8=np.random.random((256,256,3,3)) weight8=nn.Parameter(torch.FloatTensor(weight8).cuda(),requires_grad=True) weight9=np.random.random((256,256,1,1)) weight9=nn.Parameter(torch.FloatTensor(weight9).cuda(),requires_grad=True) weight10=np.random.random((512,256,3,3)) weight10=nn.Parameter(torch.FloatTensor(weight10).cuda(),requires_grad=True) weight11=np.random.random((512,512,3,3)) weight11=nn.Parameter(torch.FloatTensor(weight11).cuda(),requires_grad=True) weight12=np.random.random((512,512,1,1)) weight12=nn.Parameter(torch.FloatTensor(weight12).cuda(),requires_grad=True) new_layer_id=0 for m1 in model.modules(): if isinstance(m1, nn.Conv2d): if (new_layer_id==0): m1.weight = weight0 elif(new_layer_id==1): m1.weight= weight1 elif(new_layer_id==2): m1.weight = weight2 elif(new_layer_id==3): m1.weight = weight3 elif(new_layer_id==4): m1.weight = weight4 elif(new_layer_id==5): m1.weight = weight5 elif(new_layer_id==6): m1.weight = weight6 elif(new_layer_id==7): m1.weight = weight7 elif(new_layer_id==8): m1.weight = weight8 elif(new_layer_id==9): m1.weight = weight9 elif(new_layer_id==10): m1.weight = weight10 elif(new_layer_id==11): m1.weight = weight11 elif(new_layer_id==12): m1.weight = weight12 new_layer_id=new_layer_id+1 elif isinstance(m1, nn.BatchNorm2d): m1.weight = m1.weight m1.bias = m1.bias elif isinstance(m1, nn.Linear): m1.weight = m1.weight m1.bias = m1.bias #torchvision输出的是PILImage,值的范围是[0, 1]. # 我们将其转化为tensor数据,并归一化为[-1, 1]。 transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5)), ]) # 训练集,将相对目录./data下的cifar-10-batches-py文件夹中的全部数据(50000张图片作为训练数据)加载到内存中,若download为True时,会自动从网上下载数据并解压 trainset = torchvision.datasets.CIFAR10(root='./data', train=True, download=False, transform=transform) # 将训练集的50000张图片划分成12500份,每份4张图,用于mini-batch输入。shffule=True在表示不同批次的数据遍历时,打乱顺序。num_workers=2表示使用两个子进程来加载数据 trainloader = torch.utils.data.DataLoader(trainset, batch_size=100, shuffle=False, num_workers=1) #测试集,将相对目录./data下的cifar-10-batches-py文件夹中的全部数据(10000张图片作为测试数据)加载到内存中,若download为True时,会自动从网上下载数据并解压 testset = torchvision.datasets.CIFAR10(root='./data', train=False, download=False, transform=transform) # 将测试集的10000张图片划分成2500份,每份4张图,用于mini-batch输入。 testloader = torch.utils.data.DataLoader(testset, batch_size=50, shuffle=False, num_workers=1) criterion1 = nn.CrossEntropyLoss()#叉熵损失函数 optimizer1 = optim.Adam(model.parameters(), lr=0.001)#使用SGD(随机梯度下降)优化,学习率为0.001,动量为0.9 #momentum=0.9 start = time.clock()#.time correct = 0 total = 0 for data in testloader: images, labels = data images=images.cuda() labels=labels.cuda() outputs = model(Variable(images)) _, predicted = torch.max(outputs.data, 1) total += labels.size(0) correct += (predicted == labels).sum() print('Accuracy of the Newmodel1 on the 10000 test images: %d %%' % ( 100 * correct / total)) end = time.clock()#.time print("Running time: %s Seconds" % (end-start)) for epoch in range(20): running_loss = 0.0 for i, data in enumerate(trainloader, 0): #for i in range(1000): inputs, labels = data inputs = Variable(inputs) #print(inputs.shape) labels=Variable(labels) inputs=inputs.cuda() labels=labels.cuda() optimizer1.zero_grad() outputs = model(inputs) loss = criterion1(outputs, labels) loss.backward() optimizer1.step() running_loss += loss.item() if i % 500 == 499: print('[%d, %5d] loss: %.3f' % (epoch + 1, i + 1, running_loss / 500)) ```

tensorflow 中怎么查看训练好的模型的参数呢?

采用tensorflow中已有封装好的模块进行训练后(比如tf.contrib.layers.fully_connected),怎么查看训练好的模型的参数呢(比如某一层的权重/偏置都是什么)?求指教

求助:(pytorch)resnet加载预训练模型finetune的时候无法更新bn层、conv层

在预训练过resnet模型,并剪枝后,加载剪枝后的模型并加载权重重训练时,bn层、conv层的权重完全没用更新,这是为什么呢?也尝试修改了学习率,没有区别,依然不更新 net.stage_1[0].bn_a.track_running_stats: True net.stage_1[0].bn_a.training: False 这是其中一层bn层的track_running_stats与training的情况,与正常预训练时的情况完全没用区别。

请问训练完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)的卷积核,怎么会有这么清晰的权重图。特征图的效果也特别好,像原图一样,卷积后的特征应该也不是很清晰呀,哪位大神帮我解释一下,有可能我理解上有问题

如何建立自己的NLP训练模型

基于PYTHON开发一个NLP自然语言处理模型。最终结果希望能输入标题自动匹配相应的文本内容。 已经实现了语言素材的采集,采用GENSIM进行摘要和文本内容的匹配。现在的匹配算法有问题,匹配程度太低,给出的标题不能匹配到合适的文本,需要改进。 目前想法是自己建立人工智能训练模型,可以设置每个标题中不同关键词的优先级和先后顺序以及权重,然后不断人工进行标记和素材录入进行模型训练,来提升模型的精确性。需要帮助请大神支招! 具体流程是如何,采用什么模型?具体步骤是什么样的? ``` def CompareArticle1(ArticleSection,Articlesummary): # 文本集和搜索词 #texts = ['要深化大数据、人工智能等研发应用。当下,云计算、物联网、人工智能等技术飞速发展,并且在政务的“智能化”上发挥着日益重要的作用,要建设服务型政府,政务的“智能化”是必然方向。“互联网+政务服务”解决了信息采集、传输、监控等问题,能够促进各部门间数据共享,让群众和企业少跑腿、好办事、不添堵', #print(type(texts)) texts=ArticleSection # 1、将【文本集】生成【分词列表】 texts = [lcut(text) for text in texts] # 2、基于文本集建立【词典】,并获得词典特征数 dictionary = Dictionary(texts) num_features = len(dictionary.token2id) # 3.1、基于词典,将【分词列表集】转换成【稀疏向量集】,称作【语料库】 corpus = [dictionary.doc2bow(text) for text in texts] # 3.2、同理,用【词典】把【搜索词】也转换为【稀疏向量】 kw_vector = dictionary.doc2bow(lcut(keyword)) # 4、创建【TF-IDF模型】,传入【语料库】来训练 tfidf = TfidfModel(corpus) # 5、用训练好的【TF-IDF模型】处理【被检索文本】和【搜索词】 tf_texts = tfidf[corpus] # 此处将【语料库】用作【被检索文本】 tf_kw = tfidf[kw_vector] # 6、相似度计算 sparse_matrix = SparseMatrixSimilarity(tf_texts, num_features) similarities = sparse_matrix.get_similarities(tf_kw) #similarities = sparse_matrix.get_similarities(tf_texts) #print("类型") #print(similarities) #升序排列用于输出,不能重新排序会打乱原来的文本的位置。 #similarities2= sorted(similarities,reverse=True) #print(similarities2) #print(similarities) #print(sparse_matrix) #for e, s in enumerate(similarities, 2): # print('kw 与 text%s说 相似度为:%.2f' % (e, s)) return similarities ``` ``` def find_sub_max(arr, n): NumIndex=0 arr_=[] for i in range(n-1): arr_ = arr arr_[np.argmax(arr_)] = np.min(arr) arr = arr_ NumIndex=np.argmax(arr_) print("# arr中第{}大的数为{},位于第{}位".format(n,np.max(arr_), NumIndex)) return NumIndex ```

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

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)) ```

在vs平台上调用yolov3训练好的模型去检测新的图片速度很慢

前段时间做一个事情是基于darknet53网络训练的yolov3的模型,在vs2017平台上基于opencv调用yolo训练出来的权重文件去检测新的图片时发现速度很慢,每张用时300ms的样子,达不到我的要求,样本图片很大 2100X1000,所以现在我想请教一下能有什么方法能加速这个检测过程的么?只说思路也可以。有大神能给提供一个思路没,能在这个基础上速度提升4倍以上就行。

mask rcnn更换特征提取网络后还能用之前的模型继续训练么?

请问我现在把mask rcnn中的resnet换成了densenet网络,我还能用官方的coco权重以及我之前用resnet训练好的h5权重模型吗?

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

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

Darknet yolov3训练数据,为何载入迭代200次的数据开始训练控制台却显示从100次开始运行?

如题。 本人在做毕业设计,因疫情影响无法回学校用良好的设备训练模型,只能用自己的计算机硬跑,目标先跑个1000次。 一上午大概能迭代100次,但如果从0到100再继续训练就会在154次左右出现大量的nan,于是我退出,载入100次时候保留的权重成功跑到200并保存有权重文件。 今早我打算故技重施,可载入200次权重文件跑的时候却显示从100开始,然后101,102。我太难了。 有没有懂的兄弟可以说说原因和解决办法?跪谢!

两个特征的线性模型比一个特征的线性模型表现差的原因

现在有两个模型(w1,w2是权重,x1,x2是特征): (1)y = w1*x1 + w2 * x2 (2)y= w1 * x1 (3)y= w2 * x2 模型(3)的f值要比模型(1)和模型(2)的好,这种情况都有哪些原因啊,除了增加特征,增加了noise以外。 问题背景是:跨文档命名实体关联,特征x1是基于edit-distance的相似度,特征x2是该需要识别实体的一个window(55个词)里的所有命名实体;完整模型是最大熵模型。 求指点!

tensorflow如何在训练一定迭代次数后停止对某个参数的训练,而继续对其他参数进行训练?

我现在想在训练过程中,前100个iteration对某个Variable和其他所有的参数一起进行权重更新,然后在100个iteration之后就停止对这个参数的训练,其他参数继续照常训练,请问这个在tensorflow中要怎么实现?

使用DQN实现推荐系统,如何训练模型?

小白学的比较浅,不太理解在离线环境下,只有离散的数据记录,那么每个state都是无关的,怎么训练能连接s到s'的序列 可能我表达的不是特别清楚,在RL中由一个state到另一个状态是根据反馈r决定的,但是在无法与用户交互的离线环境下,每一条记录的状态s是无关的,那么应该怎么训练?

初级玩转Linux+Ubuntu(嵌入式开发基础课程)

课程主要面向嵌入式Linux初学者、工程师、学生 主要从一下几方面进行讲解: 1.linux学习路线、基本命令、高级命令 2.shell、vi及vim入门讲解 3.软件安装下载、NFS、Samba、FTP等服务器配置及使用

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

太惨了,面试又被吊打

Python代码实现飞机大战

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

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大类型,每个算法都从原理和案例两个角度学习,让你不仅能用起来,了解原理,还能知道为什么这么做。

如何在虚拟机VM上使用串口

在系统内核开发中,经常会用到串口调试,利用VMware的Virtual Machine更是为调试系统内核如虎添翼。那么怎么搭建串口调试环境呢?因为最近工作涉及到这方面,利用强大的google搜索和自己

程序员的兼职技能课

获取讲师答疑方式: 在付费视频第一节(触摸命令_ALL)片头有二维码及加群流程介绍 限时福利 原价99元,今日仅需39元!购课添加小助手(微信号:csdn590)按提示还可领取价值800元的编程大礼包! 讲师介绍: 苏奕嘉&nbsp;前阿里UC项目工程师 脚本开发平台官方认证满级(六级)开发者。 我将如何教会你通过【定制脚本】赚到你人生的第一桶金? 零基础程序定制脚本开发课程,是完全针对零脚本开发经验的小白而设计,课程内容共分为3大阶段: ①前期将带你掌握Q开发语言和界面交互开发能力; ②中期通过实战来制作有具体需求的定制脚本; ③后期将解锁脚本的更高阶玩法,打通任督二脉; ④应用定制脚本合法赚取额外收入的完整经验分享,带你通过程序定制脚本开发这项副业,赚取到你的第一桶金!

MFC一站式终极全套课程包

该套餐共包含从C小白到C++到MFC的全部课程,整套学下来绝对成为一名C++大牛!!!

C++语言基础视频教程

C++语言基础视频培训课程:本课与主讲者在大学开出的程序设计课程直接对接,准确把握知识点,注重教学视频与实践体系的结合,帮助初学者有效学习。本教程详细介绍C++语言中的封装、数据隐藏、继承、多态的实现等入门知识;主要包括类的声明、对象定义、构造函数和析构函数、运算符重载、继承和派生、多态性实现等。 课程需要有C语言程序设计的基础(可以利用本人开出的《C语言与程序设计》系列课学习)。学习者能够通过实践的方式,学会利用C++语言解决问题,具备进一步学习利用C++开发应用程序的基础。

北京师范大学信息科学与技术学院笔试10复试真题

北京师范大学信息科学与技术学院笔试,可以更好的让你了解北师大该学院的复试内容,获得更好的成绩。

深度学习原理+项目实战+算法详解+主流框架(套餐)

深度学习系列课程从深度学习基础知识点开始讲解一步步进入神经网络的世界再到卷积和递归神经网络,详解各大经典网络架构。实战部分选择当下最火爆深度学习框架PyTorch与Tensorflow/Keras,全程实战演示框架核心使用与建模方法。项目实战部分选择计算机视觉与自然语言处理领域经典项目,从零开始详解算法原理,debug模式逐行代码解读。适合准备就业和转行的同学们加入学习! 建议按照下列课程顺序来进行学习 (1)掌握深度学习必备经典网络架构 (2)深度框架实战方法 (3)计算机视觉与自然语言处理项目实战。(按照课程排列顺序即可)

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

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

Python界面版学生管理系统

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

软件测试2小时入门

本课程内容系统、全面、简洁、通俗易懂,通过2个多小时的介绍,让大家对软件测试有个系统的理解和认识,具备基本的软件测试理论基础。 主要内容分为5个部分: 1 软件测试概述,了解测试是什么、测试的对象、原则、流程、方法、模型;&nbsp; 2.常用的黑盒测试用例设计方法及示例演示;&nbsp; 3 常用白盒测试用例设计方法及示例演示;&nbsp; 4.自动化测试优缺点、使用范围及示例‘;&nbsp; 5.测试经验谈。

Tomcat服务器下载、安装、配置环境变量教程(超详细)

未经我的允许,请不要转载我的文章,在此郑重声明!!! 请先配置安装好Java的环境,若没有安装,请参照我博客上的步骤进行安装! 安装Java环境教程https://blog.csdn.net/qq_40881680/article/details/83585542 Tomcat部署Web项目(一)·内嵌https://blog.csdn.net/qq_40881680/article/d...

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

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

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

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

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

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

微信小程序开发实战之番茄时钟开发

微信小程序番茄时钟视频教程,本课程将带着各位学员开发一个小程序初级实战类项目,针对只看过官方文档而又无从下手的开发者来说,可以作为一个较好的练手项目,对于有小程序开发经验的开发者而言,可以更好加深对小程序各类组件和API 的理解,为更深层次高难度的项目做铺垫。

[已解决]踩过的坑之mysql连接报“Communications link failure”错误

目录 前言 第一种方法: 第二种方法 第三种方法(适用于项目和数据库在同一台服务器) 第四种方法 第五种方法(项目和数据库不在同一台服务器) 总结 前言 先给大家简述一下我的坑吧,(我用的是mysql,至于oracle有没有这样的问题,有心的小伙伴们可以测试一下哈), 在自己做个javaweb测试项目的时候,因为买的是云服务器,所以数据库连接的是用ip地址,用IDE开发好...

人工智能-计算机视觉实战之路(必备算法+深度学习+项目实战)

系列课程主要分为3大阶段:(1)首先掌握计算机视觉必备算法原理,结合Opencv进行学习与练手,通过实际视项目进行案例应用展示。(2)进军当下最火的深度学习进行视觉任务实战,掌握深度学习中必备算法原理与网络模型架构。(3)结合经典深度学习框架与实战项目进行实战,基于真实数据集展开业务分析与建模实战。整体风格通俗易懂,项目驱动学习与就业面试。 建议同学们按照下列顺序来进行学习:1.Python入门视频课程 2.Opencv计算机视觉实战(Python版) 3.深度学习框架-PyTorch实战/人工智能框架实战精讲:Keras项目 4.Python-深度学习-物体检测实战 5.后续实战课程按照自己喜好选择就可以

2019 AI开发者大会

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

机器学习初学者必会的案例精讲

通过六个实际的编码项目,带领同学入门人工智能。这些项目涉及机器学习(回归,分类,聚类),深度学习(神经网络),底层数学算法,Weka数据挖掘,利用Git开源项目实战等。

Python数据分析师-实战系列

系列课程主要包括Python数据分析必备工具包,数据分析案例实战,核心算法实战与企业级数据分析与建模解决方案实战,建议大家按照系列课程阶段顺序进行学习。所有数据集均为企业收集的真实数据集,整体风格以实战为导向,通俗讲解Python数据分析核心技巧与实战解决方案。

YOLOv3目标检测实战系列课程

《YOLOv3目标检测实战系列课程》旨在帮助大家掌握YOLOv3目标检测的训练、原理、源码与网络模型改进方法。 本课程的YOLOv3使用原作darknet(c语言编写),在Ubuntu系统上做项目演示。 本系列课程包括三门课: (1)《YOLOv3目标检测实战:训练自己的数据集》 包括:安装darknet、给自己的数据集打标签、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算和画出PR曲线)和先验框聚类。 (2)《YOLOv3目标检测:原理与源码解析》讲解YOLOv1、YOLOv2、YOLOv3的原理、程序流程并解析各层的源码。 (3)《YOLOv3目标检测:网络模型改进方法》讲解YOLOv3的改进方法,包括改进1:不显示指定类别目标的方法 (增加功能) ;改进2:合并BN层到卷积层 (加快推理速度) ; 改进3:使用GIoU指标和损失函数 (提高检测精度) ;改进4:tiny YOLOv3 (简化网络模型)并介绍 AlexeyAB/darknet项目。

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

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

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

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

DirectX修复工具V4.0增强版

DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。 本程序的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复

期末考试评分标准的数学模型

大学期末考试与高中的考试存在很大的不同之处,大学的期末考试成绩是主要分为两个部分:平时成绩和期末考试成绩。平时成绩和期末考试成绩总分一般为一百分,然而平时成绩与期末考试成绩所占的比例不同会导致出现不同

Vue.js 2.0之全家桶系列视频课程

基于新的Vue.js 2.3版本, 目前新全的Vue.js教学视频,让你少走弯路,直达技术前沿! 1. 包含Vue.js全家桶(vue.js、vue-router、axios、vuex、vue-cli、webpack、ElementUI等) 2. 采用笔记+代码案例的形式讲解,通俗易懂

c语言项目开发实例

十个c语言案例 (1)贪吃蛇 (2)五子棋游戏 (3)电话薄管理系统 (4)计算器 (5)万年历 (6)电子表 (7)客户端和服务器通信 (8)潜艇大战游戏 (9)鼠标器程序 (10)手机通讯录系统

相关热词 c#框体中的退出函数 c# 按钮透明背景 c# idl 混编出错 c#在位置0处没有任何行 c# 循环给数组插入数据 c# 多线程死锁的例子 c# 钉钉读取员工排班 c# label 不显示 c#裁剪影像 c#工作进程更新ui
立即提问