排行榜

  • 用户榜
  • 标签榜
  • 冲榜分奖金

频道

最新最热悬赏待采纳 筛选
  • 0

    回答

  • 9

    浏览

clc; clear; load('musk.mat'); % load('musk.mat'); % data = musk; lablel_musk =data(:,1); testdata = data(:,2:18); testlabel =data(:,1); dataMat = data(1:2000,1:100); labels = lablel_musk(1:1000,1); type=1; k = 5 ; arrtest = [] ; accrancy = []; %测试 lastlen  = 1; for j =1:10     error = 0; len = j*1000;     for i = 1:len classifyrsult = KNN3(testdata(i,:),dataMat(1:len,:),labels(1:len,:),k,type);  [classifyresult labels(i)]         if(classifyrsult~=testlabel(i))             error = error+1;         end     end lastlen =len; fprintf('准确率:%\n',1-(error/len)) fprintf('错误个数:%\n',error) arrtest = [arrtest j]; accrancy = [accrancy 1 -(error/len)]; end fprintf('平均准确率:%d',mean(accrancy)); polt(arrtest * 10,accrancy,'-b*'); xlabel('测试记取值百分比'); ylabel('准确率'); title('交叉验证')     出错 jcyz (第 21 行) classifyrsult = KNN3(testdata(i,:),dataMat(1:len,:),labels(1:len,:),k,type);

  • 0

    回答

  • 3

    浏览

  class LSTM(nn.Module): def __init__(self): super(LSTM, self).__init__() self.lstm = nn.LSTM(input_size=input_size, hidden_size=hidden_size, num_layers=num_layers, batch_first=True, bidirectional = True) self.output_layer = nn.Linear(in_features=hidden_size*2, out_features=4) self.dropout = nn.Dropout(p=0.5) def forward(self, x): lstm_out, (h_n, h_c) = self.lstm(x, None) lstm_out = self.dropout(lstm_out) output = self.output_layer(lstm_out[:, -1, :]) return output lstm = LSTM() lstm = lstm.float() print(lstm) optimizer = torch.optim.Adam(lstm.parameters(), lr=learning_rate) loss_function = nn.CrossEntropyLoss() for epoch in range(epoches): print("进行第{}个epoch".format(epoch)) for step, (batch_x, batch_y) in enumerate(train_loader): optimizer.zero_grad() batch_x = batch_x.view(-1,1,300) output = lstm(batch_x.float()) loss = loss_function(output, batch_y.long()) loss.backward() optimizer.step() if step % 50 == 0: test_x = dev.x.view(-1,1,300) test_output = lstm(test_x.float()) pred_y = torch.max(test_output, dim=1)[1].data.numpy() accuracy = ((pred_y == dev.y.data.numpy()).astype(int).sum()) / float(dev.y.size(0)) print('Epoch: ', epoch, '| train loss: %.4f' % loss.data.numpy(), '| test accuracy: %.2f' % accuracy)  这是一个根据文本内容分析用户地点的lstm,正确率一直没法提高,是哪里出了问题,有没有可以改进的地方?

  • 0

    回答

  • 5

    浏览

请问YOLOv4可以和LSTM网络结合吗?用YOLOv4检测结果,用LSTM来计算时间。

  • 4

    回答

  • 26

    浏览

pip install cuda只装了一个0.0.1版本的,好像用不了 并且上面提示这么一个错误。  

  • 2

    回答

  • 17

    浏览

同质异质划分的区别是准确率的高低?还是按照算法是相同的还是不同的来分? Adaboost为什么能不同的算法进行集成吗?比如这么调用,这段代码报错了,说是这么集成不对。 print('=========Adaboost&GradientBoostingClassifier&LogisticRegression&DecisionTreeClassifier==================') clf = AdaBoostClassifier(n_estimators=10, base_estimator= [GradientBoostingClassifier(),LogisticRegression(),DecisionTreeClassifier()], learning_rate=0.6) clf.fit(train,y) predicted = clf.predict(test) predicted_roc = clf.predict_proba(test) estimate(y_test,predicted,predicted_roc)  

  • 0

    回答

  • 7

    浏览

怎样直白的理解KCF目标跟踪HOG特征的作用?

  • 0

    回答

  • 8

    浏览

这是nuke13的深度学习节点报错说是CUDA_CACHE_MAXSIZE的值设置太小,网上翻了半天教程配置环境都没解决,我用的是3090的显卡,本来在其他电脑上用1060的显卡使用深度学习节点都没有问题。到3090电脑上就出现这个问题了。

  • 4

    回答

  • 15

    浏览

如题,还是说将所有的变量放到算法里就好了。变量太多运行会慢,可不可以先看相关性,挑选相关性高的变量放到算法里。 感谢!

  • 3

    回答

  • 19

    浏览

最近遇到一个文本处理的作业,老师给到了tfidf和glove处理好的数据,如何把这些处理好的数据导入模型? 具体内容入图,第一个是词的id,第二个是tfidf  

  • 0

    回答

  • 7

    浏览

如题,图片经过卷积运算后,通道数不再是3,而是变为64,128,256等数,如何将各层特征图提取出来并保存成图片呢?先谢谢了

  • 1

    回答

  • 7

    浏览

import numpy as np import pandas as pd import sklearn from sklearn.model_selection import train_test_split from sklearn.neighbors import KNeighborsClassifier from sklearn.metrics import accuracy_score, classification_report def label(s): it={b'0':0, b'1':1 } return it[s] #1.读取数据集 path='d://SVM.data' data=np.loadtxt(path, dtype=float, delimiter=',', converters={2:label}) #2.划分数据与标签 x,y=np.split(data,indices_or_sections=(2,),axis=1) #x为数据,y为标签 x=x[:,0:2] train_X,test_X,train_Y,test_Y =train_test_split(x,y, random_state=1, train_size=0.6,test_size=0.4) def knn_classifier(train_X, train_Y, test_X, test_Y, title): print("KNN分类器", title) knn = KNeighborsClassifier(algorithm='auto', leaf_size=10, metric='minkowski', metric_params=None, n_jobs=1, n_neighbors=2, p=2, weights='uniform') #应该就是这一句话的问题 knn.fit(train_X, train_Y) # 加载数据集 predict_Y = knn.predict(test_X) print("训练准确率为{:.3f}%".format(accuracy_score(test_Y, predict_Y) * 100)) print(classification_report(test_Y, predict_Y))  

  • 0

    回答

  • 3

    浏览

使用岭回归(使用Moore-Penrose逆的直接估计)将给定的数据集与一般形式f(x)=w1+w2x+w3x平方+...wnx的n−1次方 的多项式模型拟合,若要确定具有超参数优化的最大多项式阶数。求参数和超参数的个数?答案是n个参数,2个超参数,这是为什么?谢谢解答!

  • 1

    回答

  • 16

    浏览

我使用的是Anaconde+cuda10.1+Cudnn+TensorFlow2.1.0+Pytorch1.7.1+Pycharm(python3.6) 本人是机器学习初学者,想跑一个猫狗大战练练手,遇到了下列问题: 个人感觉是我的一些配置出现了问题 老是显示是 '__init__.py' 中找不到引用 运行train.py会出现报错如下图: 在网上也没有找到合适的解决方法,希望哥哥姐姐们可以帮我看一下,万分感谢!!! 代码附在下面(数据集就是猫狗大战的数据集): input_data.py import tensorflow as tf import numpy as np import os '''生成图片路径和标签的List''' def get_files(file_dir): ''' 输入: 存放训练照片的文件地址 返回: 图像列表, 标签列表 ''' cats = [] label_cats = [] dogs = [] label_dogs = [] for file in os.listdir(file_dir): # 用os.listdir函数来返回file_dir路径下所有的图片,file就是要读取的照片 name = file.split(sep='.') # 用file.split 将文件的名字分隔开,分隔的符号是‘.’ if name[0] == 'cat': # 所以只用读取 . 前面这个字符串 cats.append(file_dir + file) label_cats.append(0) # 把图像和标签加入列表 else: dogs.append(file_dir + file) label_dogs.append(1) # 名字是cat就赋值0,名字是dog就赋值1 print('There are %d cats\nThere are %d dogs' % (len(cats), len(dogs)))#打印有多少猫,多少狗 '''对生成的图片路径和标签List做打乱处理''' image_list = np.hstack((cats, dogs)) #使用np.hstack()将cat和dog的图片和标签整合为列表image_list和label_list label_list = np.hstack((label_cats, label_dogs)) temp = np.array([image_list, label_list]) # 将image_list和label_list合并,存放在temp temp = temp.transpose() # 对temp进行转置 np.random.shuffle(temp) # 用shuffle来打乱图片和标签 image_list = list(temp[:, 0]) #从temp中取出乱序后的image_list和label_list列向量 label_list = list(temp[:, 1]) label_list = [int(float(i)) for i in label_list] # 把标签列表转化为int类型 return image_list, label_list ''' 由于数据集较大,需要分批次通过网络,故生成batch''' '''step1:将上面生成的List传入get_batch() ,转换类型,产生一个输入队列queue,因为img和lab是分开的, 所以使用tf.train.slice_input_producer(),然后用tf.read_file()从队列中读取图像''' def get_batch(image, label, image_W, image_H, batch_size, capacity): """ 输入: image,label :要生成batch的图像和标签 image_W,image_H: 图像的宽度和高度 batch_size: 每个batch要放多少张图片 capacity: 一个队列最大多少 image_batch: 4D tensor [batch_size, width, height, 3], dtype=tf.float32 label_batch: 1D tensor [batch_size], dtype=tf.int32 """ image = tf.cast(image, tf.string) #将列表转换成tf能够识别的格式 label = tf.cast(label, tf.int32) """ 队列的理解:每次训练时,从队列中取一个batch送到网络进行训练, 然后又有新的图片从训练库中注入队列,这样循环往复。 队列相当于起到了训练库到网络模型间数据管道的作用, 训练数据通过队列送入网络。 """ input_queue = tf.train.slice_input_producer([image, label])#将image和label合并生成一个队列 # 图像的读取需要tf.read_file(),标签则可以直接赋值 label = input_queue[1] image_contents = tf.read_file(input_queue[0])#然后从队列中分别取出image和label '''step2:将图像解码,不同类型的图像不能混在一起,要么只用jpeg,要么只用png等''' image = tf.image.decode_jpeg(image_contents, channels=3) # 解码彩色的.jpg图像 '''step3:数据预处理,对图像进行旋转、缩放、裁剪、归一化等操作,让计算出的模型更健壮''' image = tf.image.resize_image_with_crop_or_pad(image, image_W, image_H) image = tf.image.per_image_standardization(image) '''step4:生成batch''' image_batch, label_batch = tf.train.batch([image, label], batch_size=batch_size, num_threads=64, # 涉及到线程,配合队列 capacity=capacity) image_batch = tf.cast(image_batch, tf.float32) label_batch = tf.cast(label_batch, tf.int32) #重新排列label,行数为[batch_size] return image_batch, label_batch # %% TEST # To test the generated batches of images # When training the model, DO comment the following codes import matplotlib.pyplot as plt BATCH_SIZE = 2 CAPACITY = 256 IMG_W = 208 IMG_H = 208 train_dir = 'D:/Python/Pycharm_workstation/cats-vs-dogs-master/data/train' image_list, label_list = get_files(train_dir) image_batch, label_batch = get_batch(image_list, label_list, IMG_W, IMG_H, BATCH_SIZE, CAPACITY) with tf.Session() as sess: i = 0 coord = tf.train.Coordinator() threads = tf.train.start_queue_runners(coord=coord) try: while not coord.should_stop() and i < 1: img, label = sess.run([image_batch, label_batch]) # just test one batch for j in np.arange(BATCH_SIZE): print('label: %d' % label[j]) # j-index of quene of Batch_size plt.imshow(img[j, :, :, :]) plt.show() i += 1 except tf.errors.OutOfRangeError: print('done!') finally: coord.request_stop() coord.join(threads)   model.py import tensorflow as tf '''网络结构定义:一个简单的卷积神经网络,卷积+池化层x2,全连接层x2,最后一个softmax层做分类''' def cnn_inference(images, batch_size, n_classes): """ 输入 images 输入的图像 batch_size 每个批次的大小 n_classes n分类 返回 softmax_linear 还差一个softmax 输入参数: images,image batch、4D tensor、tf.float32、[batch_size, width, height, channels] 返回参数: logits, float、 [batch_size, n_classes] """ '''第一层的卷积层conv1:16个3x3的卷积核(3通道),padding=’SAME’,表示padding后卷积的图与原图尺寸一致,激活函数relu()''' with tf.variable_scope('conv1') as scope: # 建立weights和biases的共享变量 # conv1, shape = [kernel size, kernel size, channels, kernel numbers] weights = tf.get_variable('weights', shape=[3, 3, 3, 16], dtype=tf.float32, initializer=tf.truncated_normal_initializer(stddev=0.1, dtype=tf.float32)) # stddev标准差 biases = tf.get_variable('biases', shape=[16], dtype=tf.float32, initializer=tf.constant_initializer(0.1)) conv = tf.nn.conv2d(images, weights, strides=[1, 1, 1, 1], padding='SAME')#padding填充周围有valid(丢弃)和same(补零)可选择 #strides:卷积时在图像每一维的步长(这是一个一维的向量,长度4),第一维和第四维默认为1,第二维和第三维分别是平行和竖直滑行的步进长度 pre_activation = tf.nn.bias_add(conv, biases) # 加入偏差 conv1 = tf.nn.relu(pre_activation, name=scope.name) # 加上激活函数非线性化处理,且是在conv1的命名空间 '''池化层1:2*2最大池化,步长strides为2,池化后执行lrn()操作,局部响应归一化,对训练有利 第一层的池化层pool1和规范化norm1(特征缩放)''' with tf.variable_scope('pooling1_lrn') as scope: pool1 = tf.nn.max_pool(conv1, ksize=[1, 2, 2, 1], strides=[1, 2, 2, 1], padding='SAME', name='pooling1') norm1 = tf.nn.lrn(pool1, depth_radius=4, bias=1.0, alpha=0.001 / 9.0, beta=0.75, name='norm1') # ksize是池化窗口的大小=[1,height,width,1],一般height=width=池化窗口的步长 # 池化窗口的步长一般是比卷积核多移动一位 # tf.nn.lrn是Local Response Normalization,(局部响应归一化)将输入小于0的值幅值为0,输入大于0的值不变 # 第二层的卷积层cov2,这里的命名空间和第一层不一样,所以可以和第一层取同名 with tf.variable_scope('conv2') as scope: weights = tf.get_variable('weights', shape=[3, 3, 16, 16], # 这里只有第三位数字16需要等于上一层的tensor维度 dtype=tf.float32, initializer=tf.truncated_normal_initializer(stddev=0.1, dtype=tf.float32)) biases = tf.get_variable('biases', shape=[16], dtype=tf.float32, initializer=tf.constant_initializer(0.1)) conv = tf.nn.conv2d(norm1, weights, strides=[1, 1, 1, 1], padding='SAME') pre_activation = tf.nn.bias_add(conv, biases) conv2 = tf.nn.relu(pre_activation, name='conv2') # 第二层的池化层pool2和规范化norm2 with tf.variable_scope('pooling2_lrn') as scope: norm2 = tf.nn.lrn(conv2, depth_radius=4, bias=1.0, alpha=0.001 / 9.0, beta=0.75, name='norm2') pool2 = tf.nn.max_pool(norm2, ksize=[1, 2, 2, 1], strides=[1, 1, 1, 1], padding='SAME', name='pooling2') # 这里选择了先规范化再池化 # 第三层为全连接层local3,128个神经元,将之前pool层的输出reshape成一行,激活函数relu() with tf.variable_scope('local3') as scope: # flatten-把卷积过的多维tensor拉平成二维张量(矩阵) reshape = tf.reshape(pool2, shape=[batch_size, -1]) # batch_size表明了有多少个样本 dim = reshape.get_shape()[1].value # 知道-1(代表任意)这里具体是多少个 weights = tf.get_variable('weights', shape=[dim, 128], # 连接128个神经元 dtype=tf.float32, initializer=tf.truncated_normal_initializer(stddev=0.005, dtype=tf.float32)) biases = tf.get_variable('biases', shape=[128], dtype=tf.float32, initializer=tf.constant_initializer(0.1)) local3 = tf.nn.relu(tf.matmul(reshape, weights) + biases, name=scope.name) # 矩阵相乘加上bias # 第四层为全连接层local4 with tf.variable_scope('local4') as scope: weights = tf.get_variable('weights', shape=[128, 128], # 再连接128个神经元 dtype=tf.float32, initializer=tf.truncated_normal_initializer(stddev=0.005, dtype=tf.float32)) biases = tf.get_variable('biases', shape=[128], dtype=tf.float32, initializer=tf.constant_initializer(0.1)) local4 = tf.nn.relu(tf.matmul(local3, weights) + biases, name='local4') # 第五层为输出层softmax_linear,Softmax回归层 将前面的FC层输出,做一个线性回归,计算出每一类的得分,在这里是2类,所以这个层输出的是两个得分 with tf.variable_scope('softmax_linear') as scope: weights = tf.get_variable('weights', shape=[128, n_classes], dtype=tf.float32, initializer=tf.truncated_normal_initializer(stddev=0.005, dtype=tf.float32)) biases = tf.get_variable('biases', shape=[n_classes], dtype=tf.float32, initializer=tf.constant_initializer(0.1)) softmax_linear = tf.add(tf.matmul(local4, weights), biases, name='softmax_linear') # 这里只是命名为softmax_linear,真正的softmax函数放在下面的losses函数里面和交叉熵结合在一起了,这样可以提高运算速度。 # softmax_linear的行数=local4的行数,列数=weights的列数=bias的行数=需要分类的个数 # 经过softmax函数用于分类过程中,它将多个神经元的输出,映射到(0,1)区间内,可以看成概率来理解 return softmax_linear '''loss计算 将网络计算得出的每类得分与真实值进行比较,得出一个loss损失值,这个值代表了计算值与期望值的差距。这里使用的loss函数是交叉熵。 一批loss取平均数。最后调用了summary.scalar()记录下这个标量数据,在TensorBoard中进行可视化 ''' def losses(logits, labels): """ 输入 logits: 经过cnn_inference处理过的tensor labels: 对应的标签 返回 loss: 损失函数(交叉熵) """ with tf.variable_scope('loss') as scope: cross_entropy = tf.nn.sparse_softmax_cross_entropy_with_logits(logits=logits, labels=labels, name='loss_per_eg') '''tf.nn.sparse_softmax_cross_entropy_with_logits()放在图片上,就是对一个像素深度方向的向量,与对应的标签做交叉熵, 再求一个像素深度方向交叉熵的和。loss值是对所有像素点的交叉熵和取平均。''' loss = tf.reduce_mean(cross_entropy, name='loss') # 求所有样本的平均loss tf.summary.scalar(scope.name + '/loss', loss) return loss '''loss损失值优化 :目的就是让loss越小越好,使用的是AdamOptimizer优化器 函数:def trainning(loss, learning_rate)''' def training(loss, learning_rate): """ 输入 loss: 损失函数(交叉熵) learning_rate: 学习率 返回 train_op: 训练的最优值 """ with tf.name_scope('optimizer'): optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate) # global_step不是共享变量,初始值为0,设定trainable=False 可以防止该变量被数据流图的 GraphKeys.TRAINABLE_VARIABLES 收集, # 这样我们就不会在训练的时候尝试更新它的值。 global_step = tf.Variable(0, name='global_step', trainable=False) train_op = optimizer.minimize(loss, global_step=global_step) return train_op '''评价/准确率计算:计算出平均准确率来评价这个模型,在训练过程中按批次计算(每隔N步计算一次),可以看到准确率的变换情况。 函数:def evaluation(logits, labels):''' def evaluation(logits, labels): """ 输入 logits: 经过cnn_inference处理过的tensor labels: 返回 accuracy:正确率 """ with tf.variable_scope('accuracy') as scope: prediction = tf.nn.softmax(logits) # Softmax简单的说就是把一个N*1的向量归一化为(0,1)之间的值,由于其中采用指数运算,使得向量中数值较大的量特征更加明显 # prediction每行的最大元素(1)的索引和label的值相同则为1 否则为0。 correct = tf.nn.in_top_k(prediction, labels, 1) #tf.nn.in_top_k组要是用于计算预测的结果和实际结果的是否相等 # correct = tf.nn.in_top_k(logits, labels, 1) 也可以不需要prediction过渡,因为最大值的索引没变,这里这样写是为了更好理解 correct = tf.cast(correct, tf.float16) # tf.cast() 函数的作用是执行 tensorflow 中张量数据类型转换 accuracy = tf.reduce_mean(correct) tf.summary.scalar(scope.name + '/accuracy', accuracy)#通过函数tf.summary.scalar()记录的数据的变化趋势 return accuracy   train.py import os import numpy as np import tensorflow as tf import input_data import model N_CLASSES = 2 # 猫和狗 IMG_W = 208 # resize图像,太大的话训练时间久 IMG_H = 208 BATCH_SIZE = 16#一次迭代的图片数量(50) CAPACITY = 2000 MAX_STEP = 10000 # 一般5K~10k learning_rate = 0.0001 # 一般小于0.0001 train_dir = 'D:/Python/Pycharm_workstation/cats-vs-dogs-master/data/train' logs_train_dir = 'D:/Python/Pycharm_workstation/catsvsdogs/log/' # 记录训练过程与保存模型 '''获取批次batch''' train, train_label = input_data.get_files(train_dir) train_batch,train_label_batch=input_data.get_batch(train, train_label, IMG_W, IMG_H, BATCH_SIZE, CAPACITY) '''操作定义''' train_logits = model.cnn_inference(train_batch, BATCH_SIZE, N_CLASSES) train_loss = model.losses(train_logits, train_label_batch) train_op = model.training(train_loss, learning_rate) train__acc = model.evaluation(train_logits, train_label_batch) summary_op = tf.summary.merge_all() #自动管理模式 #产生一个会话 sess = tf.Session() #产生一个writer来写log文件 train_writer = tf.summary.FileWriter(logs_train_dir, sess.graph) #产生一个saver来存储训练好的模型 saver = tf.train.Saver() #所有节点初始化 sess.run(tf.global_variables_initializer()) '''TensorFlow提供了两个类来实现对Session中多线程的管理:tf.Coordinator和 tf.QueueRunner,这两个类往往一起使用。''' coord = tf.train.Coordinator() '''Coordinator类用来管理在Session中的多个线程,可以用来同时停止多个工作线程并且向那个在等待所有工作线程终止的程序报告异常, 该线程捕获到这个异常之后就会终止所有线程。使用 tf.train.Coordinator()来创建一个线程管理器(协调器)对象 QueueRunner类用来启动tensor的入队线程,可以用来启动多个工作线程同时将多个tensor(训练数据)推送入文件名称队列中,具体执行函数是 tf.train.start_queue_runners , 只有调用 tf.train.start_queue_runners 之后,才会真正把tensor推入内存序列中,供计算单元调用,否则 会由于内存序列为空,数据流图会处于一直等待状态。 ''' threads = tf.train.start_queue_runners(sess=sess, coord=coord) '''进行batch的训练''' try: #执行MAX_STEP步的训练,一步一个batch for step in np.arange(MAX_STEP): if coord.should_stop(): break _, tra_loss, tra_acc = sess.run([train_op, train_loss, train__acc]) #每隔50步打印一次当前的loss以及acc,同时记录log,写入writer if step % 50 == 0: print('Step %d, train loss = %.2f, train accuracy = %.2f%%' %(step, tra_loss, tra_acc*100.0)) summary_str = sess.run(summary_op) train_writer.add_summary(summary_str, step) #每隔2000步,保存一次训练好的模型 if step % 2000 == 0 or (step + 1) == MAX_STEP: checkpoint_path = os.path.join(logs_train_dir, 'model.ckpt') saver.save(sess, checkpoint_path, global_step=step) except tf.errors.OutOfRangeError: #如果读取到文件队列末尾会抛出此异常 print('Done training -- epoch limit reached') finally: coord.request_stop()# 协调器coord发出所有线程终止信号 coord.join(threads) sess.close()  

  • 1

    回答

  • 23

    浏览

基于百度的paddle实现语音识别,训练这个模型时需要多久,有训练多的大佬吗,希望可以回答一下

  • 1

    回答

  • 7

    浏览

机器学习训练出来的模型方程式,和用数学软件(比如excel、origin)拟合出来的方程式有什么区别?

  • 0

    回答

  • 4

    浏览

水果分类任务,限定苹果、橘子、香蕉。本人已通过pycharm用类VGG卷积神经网络训练好了.h5权重文件和.pb模型,现在计划调用笔记本摄像头,摄像头一直开着,发现苹果时能将苹果框出来,打印输出一个0。发现橘子框起来,打印输出一个1,香蕉框起来打印输出一个2。 卷积神经网络可以进行图片预测,但是怎么能够实时检测呢?没有一点思路请各位前辈指点指点,谢谢。

  • 0

    回答

  • 4

    浏览

K均值聚类算法能否将中心点换成中心线?这样聚类的对象可以是一个平面吗?

  • 2

    回答

  • 20

    浏览

比如我现在有[1,2,3,4,5,6]这个数组, 如何将该数组中随机n个数字都+1, 比如将原有数组变成[2,2,4,4,5,6], 这里面就随机到了第0第2个数加一了。

  • 3

    回答

  • 20

    浏览

麻烦大佬帮忙看一下生什么情况?

  • 4

    回答

  • 102

    浏览

12台电脑是相同的系统2016,用ip 远程桌面访问 使用什么办法能群控,同时安装软件,同时下载,同时修改文件,同时修改密码等。 参考了下红蜘蛛,只能分发软件,不能群控 参考了redmin,只能一个,一个操作 请大神给个方案 谢谢,如果实施,另外给技术费

  • 1

    回答

  • 13

    浏览

有没有比较完善的导入数据集就可以进行分析的KNN算法程序,我所能找到的都是直接导入sklearn包中自带的数据集实现的,我想要用KNN做一个简单分析,已经做出了一个数据集,但是我把那些代码进行修改,导入我自己的数据之后就会报错,我不知道是我的代码有问题还是我整理出的数据格式有问题。所以我想问问有没有不通过导入sklearn包中自带的数据集实现,通过导入自己数据实现的KNN程序,还想了解一下数据集的格式要求

  • 4

    回答

  • 19

    浏览

K均值聚类算法,谱聚类算法,Viola-Jones算法 这三种算法怎么通过对比分析找到它们各自在不同应用领域的优势,若应用于输油管道巡检的漏油点识别应该如何进行优化

  • 3

    回答

  • 13

    浏览

      想探究一下优秀企业的名字的特征,比如字符长度,难易程度,地域特点,行业特点等。有没有什么方法可以用。 目前比较没有头绪,有没有大佬来指点指点。

  • 1

    回答

  • 19

    浏览

进行机器学习时,数据集包含多个子数据包 然后训练时,得到的结果就按照数据集分段了 请问如何训练或者设计才能让结果变成若干(即测试集数目)条从0开始的曲线,而不是连接在一起的折线?

  • 0

    回答

  • 4

    浏览

原来有EK100和EL1809、EL2809正常工作,我想再接一个模拟量模块读取传感器的值。请问我在wv中配置的时候,是不是只将倍福的Value映射上即可,然后在实际接线中只从传感器接出一根线到input1?还需要别的操作吗请问各位前辈??    

  • 3

    回答

  • 10

    浏览

    正在创建库 C:/Users/SuperMike/build/lib/Release/_caffe.lib 和对象 C:/Users/SuperMike/build/lib/Release/_caffe.exp _caffe.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) struct _object * __cdecl boost::python::detail::init_module(struct PyModuleDef &,void (__cdecl*)(v oid))" (__imp_?init_module@detail@python@boost@@YAPEAU_object@@AEAUPyModuleDef@@P6AXXZ@Z),该符号在函数 PyInit__caffe 中被引用 [C:\Users\SuperMike\build\python\pycaffe.vc xproj] C:\Users\SuperMike\build\lib\Release\_caffe.pyd : fatal error LNK1120: 1 个无法解析的外部命令 [C:\Users\SuperMike\build\python\pycaffe.vcxproj]   test_net.cpp   Unknown compiler version - please run the configure tests and report the results

  • 1

    回答

  • 12

    浏览

Traceback (most recent call last):   File "E:/Con-GAE-main/src/train.py", line 114, in <module>     train_loader = DataLoader(train_dataset, **params)   File "E:\Anaconda3\lib\site-packages\torch_geometric\data\dataloader.py", line 43, in __init__     super(DataLoader,   File "E:\Anaconda3\lib\site-packages\torch\utils\data\dataloader.py", line 266, in __init__     sampler = RandomSampler(dataset, generator=generator)  # type: ignore   File "E:\Anaconda3\lib\site-packages\torch\utils\data\sampler.py", line 102, in __init__ import os import torch import numpy as np from torch_geometric.data import Data from sklearn.metrics import roc_curve, auc import argparse import os import sys import random import torch.nn as nn from torch.utils import data import pandas as pd import matplotlib.pyplot as plt from random import shuffle import pickle import torchvision.transforms as transforms import time from torch_geometric.data import InMemoryDataset, Dataset, Data, DataLoader import math from data_util import ConTrafficGraphDataset as trafficDataset from model import ConGAE,ConGAE_t, ConGAE_sp, deepConGAE parser = argparse.ArgumentParser() # model parser.add_argument('--model', default = 'ConGAE', help = 'Model type: ConGAE, ConGAE_t, ConGAE_sp, deepConGAE') # training parameters parser.add_argument('--randomseed', type=int, default = 1) parser.add_argument('--train_epoch', type =int, default = 150 , help = 'number of training epochs') parser.add_argument('--lr', default = 5e-5 , help = 'learning rate') parser.add_argument('--dropout_p', default = 0.2 , help = 'drop out rate') parser.add_argument('--adj_drop', default = 0.2 , help = 'edge dropout rate') parser.add_argument('--verbal', default = False, type = bool , help = 'print loss during training') # 2-layer ConGAE parameters parser.add_argument('--input_dim', type=int, default = 4, help = 'input feature dimension') parser.add_argument('--n_nodes', type=int, default = 50, help = 'total number of nodes in the graph') parser.add_argument('--node_dim1', type=int, default = 300, help = 'node embedding dimension of the first GCN layer') parser.add_argument('--node_dim2', type=int, default = 150, help = 'node embedding dimension of the second GCN layer') parser.add_argument('--encode_dim', type=int, default = 150, help = 'final graph embedding dimension of the Con-GAE encoder') parser.add_argument('--hour_emb', type=int, default = 100, help = 'hour emnbedding dimension') parser.add_argument('--week_emb', type=int, default = 100, help = 'week emnbedding dimension') parser.add_argument('--decoder', type=str, default = 'concatDec', help = 'decoder type:concatDec, bilinearDec') # deepConGAE parameters parser.add_argument('--hidden_list', nargs="*", type=int, default = [300, 150], help = 'the node embedding dimension of each layer of GCN') parser.add_argument('--decode_dim', type=int, default = 150, help = 'the node embedding dimension at decoding') # files parser.add_argument('--log_dir', default = '../log/' , help = 'directory to save model') args = parser.parse_args() print(args) #Reproducability np.random.seed(seed=args.randomseed) random.seed(args.randomseed) torch.manual_seed(args.randomseed) result_dir = args.log_dir + 'results/' if not os.path.exists(result_dir): os.makedirs(result_dir) # ## load data dirName = "../data/selected_50_orig/" with open(dirName + 'partition_dict', 'rb') as file: partition = pickle.load(file) # item_d: whihc time slice each id correspond to with open(dirName + 'item_dict', 'rb') as file: item_d = pickle.load(file) node_X = np.load(dirName + 'node_X.npy') node_posx = np.mean(node_X[:, :2], 1) node_posy = np.mean(node_X[:, 2:], 1) node_X = torch.from_numpy(node_X).float() tt_min, tt_max =np.load(dirName + 'tt_minmax.npy' ) start_time = 0+24*23 end_time = 23+24*27 # reset partition all_data = partition['train'] + partition['val'] partition_test = all_data[350:750] # includes NFL, 400 points, 30% are NFL partition_val = all_data[:150] partition_train = all_data[150:350] + all_data[750:] # the rest source_dir = dirName # full sample size (~2000) # Parameters params = {'batch_size': 10, 'shuffle': True, 'num_workers': 0} params_val = {'batch_size': 10, 'shuffle': False, 'num_workers': 0} root = '../data/selected_50_pg/root/' # data loaders train_dataset = trafficDataset(root, partition_train, node_X, item_d, source_dir ) test_dataset = trafficDataset(root, partition_test, node_X, item_d, source_dir) val_dataset = trafficDataset(root, partition_val, node_X, item_d, source_dir) train_loader = DataLoader(train_dataset, **params) test_loader = DataLoader(test_dataset,**params_val ) val_loader = DataLoader(val_dataset,**params_val ) # ## load model device = torch.device("cuda" if torch.cuda.is_available() else "cpu") if args.model == 'ConGAE_sp': model = ConGAE_sp(args.input_dim, args.node_dim1,args.node_dim2, args.dropout_p,args.adj_drop, decoder = args.decoder, n_nodes = args.n_nodes) if args.model == 'ConGAE_t': model = ConGAE_t(args.input_dim, args.node_dim1,args.node_dim2, args.dropout_p,args.adj_drop,decoder = args.decoder, hour_emb = args.hour_emb, week_emb = args.week_emb,n_nodes = args.n_nodes) if args.model == 'ConGAE': model = ConGAE(input_feat_dim=args.input_dim, node_dim1 =args.node_dim1, node_dim2=args.node_dim2, encode_dim = args.encode_dim ,hour_emb = args.hour_emb, week_emb = args.week_emb, n_nodes = args.n_nodes) if args.model == 'deepConGAE': model = deepConGAE(args.input_dim, hidden_list = args.hidden_list, encode_dim = args.encode_dim,decode_dim = args.decode_dim, dropout = args.dropout_p, adj_drop = args.adj_drop, hour_emb = args.hour_emb, week_emb = args.week_emb,n_nodes = args.n_nodes) model.float() # specify optimizer optimizer = torch.optim.Adam(model.parameters(), lr=args.lr) criterion = nn.MSELoss() def calc_rmse(recon_adj, adj, tt_min, tt_max): adj = adj * (tt_max - tt_min) + tt_min recon_adj = recon_adj * (tt_max - tt_min) + tt_min rmse = criterion(recon_adj, adj) return torch.sqrt(rmse) def train(epoch, train_loader ,test_loader, best_val): model.train() train_loss = 0 loss_train = [] loss_val = [] for graph_data in train_loader: graph_data = graph_data.to(device) optimizer.zero_grad() if args.model == 'ConGAE_sp': recon = model(graph_data.x, graph_data.edge_index, graph_data.edge_attr) else: recon = model(graph_data.x, graph_data.edge_index, graph_data.edge_attr,graph_data.hour, graph_data.week) loss = criterion(recon, graph_data.edge_attr) loss.backward() optimizer.step() loss_train.append(loss.item()) for graph_val in val_loader: # evaluation model.eval() graph_val = graph_val.to(device) with torch.no_grad(): if args.model == 'ConGAE_sp': recon_val = model(graph_val.x, graph_val.edge_index, graph_val.edge_attr) else: recon_val = model(graph_val.x, graph_val.edge_index, graph_val.edge_attr, graph_val.hour, graph_val.week) mse_val = criterion(recon_val, graph_val.edge_attr) loss_val.append(mse_val.item()) loss_train = sum(loss_train) / len(loss_train) loss_val = sum(loss_val) / len(loss_val) # print results if args.verbal and epoch % 15 == 0: print('Train Epoch: {} loss: {:e} val_loss: {:e}'.format( epoch, loss_train, loss_val )) rmse = math.sqrt(loss_val) * (tt_max - tt_min) print('validation travel time rmse mean: {:e}'.format(rmse)) # early-stopping if loss_val < best_val: torch.save({ 'epoch' : epoch, 'model_state_dict': model.state_dict(), 'optimizer_state_dict': optimizer.state_dict(), }, model_path) best_val = loss_val return loss_train, loss_val, best_val # ## Train loss_track = [] val_track = [] model = model.to(device) n_epochs = args.train_epoch start = time.time() best_val = float('inf') # for early stopping model_path = args.log_dir + args.model + '.pt' lr_decay_step_size = 100 for epoch in range(1, n_epochs+1): train_loss, val_loss, best_val = train(epoch, train_loader, val_loader, best_val) loss_track.append(train_loss) val_track.append(val_loss) if epoch % lr_decay_step_size == 0: for param_group in optimizer.param_groups: param_group['lr'] = 0.5 * param_group['lr'] print("time for {} epochs: {:.3f} min".format(n_epochs, (time.time() - start)/60)) # plot learning curve plt.plot(np.array(loss_track), label = 'traiing') plt.plot(np.array(val_track), label = 'validaiton') plt.title("loss") plt.xlabel("# epoch") plt.ylabel("MSE loss") plt.legend() # plt.ylim(0.4, 1) # plt.show() plt.savefig(result_dir + args.model +"_training_curve.png") # save args config with open(args.log_dir + args.model + '_args.pkl', 'wb') as fp: pickle.dump(args, fp)     if not isinstance(self.num_samples, int) or self.num_samples <= 0:   File "E:\Anaconda3\lib\site-packages\torch\utils\data\sampler.py", line 110, in num_samples     return len(self.data_source) TypeError: 'NoneType' object cannot be interpreted as an integer

  • 1

    回答

  • 23

    浏览

考虑区域Z,其中0≤x <1,0≤y <1。考虑Z→{true,false}的二元类分类问题。   假设如果x <0.5则为true,如果x> = 0.5则为false。   作为训练数据,从真实范围中随机选择n个点,从错误范围中随机选择n个点。   作为泛化性能,从Z中随机选择100个点,并获得估计结果与真实值之间的匹配率。   (1)当n = 2时,尝试100次实验得出1-NN的泛化性能。(匹配率的平均值和标准偏差。   (2)当n = 10时,尝试100次试验以找出1-NN的泛化性能。(匹配率的平均值和标准偏差。   (3)假设n = 10,但十分之一是噪声。     此时,比较1-NN的泛化性能和3-NN的泛化性能。尝试100次表示出结果。 求相关设计思路和代码