【睿慕课点云处理】第七章-深度学习基础

2024-02-28 15:48

本文主要是介绍【睿慕课点云处理】第七章-深度学习基础,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

深度学习基础

  • 课程
    • 课程汇总
  • 作业
    • 神经网络基础
      • 可视化
    • MNIST手写数字体识别
      • 1、MLP
      • 2、K-近邻
      • 3、CNN
  • 参考

课程

课程汇总


作业

神经网络基础

'''
@Description:  三层神经网络实现分类
@Author: Su Yunzheng
@Date: 2020-06-17 15:40:53
@LastEditTime: 2020-06-18 16:12:21
@LastEditors: Su Yunzheng
'''import numpy as np
import sklearn
import matplotlib 
import matplotlib.pyplot as pltfrom getData import gen_classify_data # 可视化
# input:sample_x(2*n), sample_y(n,)
def visualization(sample_x, sam_type, save=False, path='inference/sample-data.png'):samp = plt.figure()samp_ax = samp.add_subplot(1, 1, 1)samp_ax.set_title('sample data')type = sam_type                 # 给定一个label(n,)samp_ax.scatter(sample_x[0], sample_x[1], c=type, linewidths=type)if save:plt.savefig(path, dpi=400, bbox_inches='tight')plt.show()# 可视化对比图
# 可视化
# input:sample_x(2*1000), sam_type(1000,), pred_type(1000,)
def compare_visual(sample_x, sam_type, pred_type, save=False, path='inference/inference-compare.png',title='inference comparison', loss=0):# 查看输出的格式  # sample_x:(2, 1000),sample_y:(3, 1000),predict_y:(3, 1000)# print('sample_x:{},sample_y:{},predict_y:{}'.format(sample_x.shape, sample_y.shape, predict_y.shape))comp = plt.figure()comp.suptitle(title)samp_ax = plt.subplot2grid((2, 2), (0, 0))              # 划分位置pred_ax = plt.subplot2grid((2, 2), (0, 1))comp_ax = plt.subplot2grid((2, 2), (1, 0), colspan=2)samp_ax.set_title('sample results')pred_ax.set_title('predict results')comp_ax.set_title('comparison loss= %.5f' %loss)# sam_type = np.where(sample_y.T == sample_y.max())[1]        # 1000个点的类别 (1000,)# pred_type = np.where(predict_y.T == predict_y.max())[1]     # 1000个点的类别 0 1 2 # print("predict_y:{}".format(predict_y.shape))   # 3*1000# print("pred_type :{},sam_type shape:{}".format(pred_type,sam_type.shape))# print('sam_type:{}'.format(sam_type))d_type = pred_type - sam_type     # label和predict的差异# print('type:{}'.format(type))  samp_ax.scatter(sample_x[0], sample_x[1], c=sam_type, linewidths=sam_type)pred_ax.scatter(sample_x[0], sample_x[1], c=pred_type, linewidths=pred_type)comp_ax.scatter(sample_x[0], sample_x[1], c=d_type)                # 根据预测结果的不同,差异越大,其余颜色的数目就越多if save:plt.savefig(path, dpi=400, bbox_inches='tight')plt.show()# 生成作业数据数据 X为坐标,y为标签
X,y=gen_classify_data(200)
y=np.argmax(y,axis=0)         # [1,0,0]-->0;        [0,1,0]-->1;        [0,0,1]-->2;
X=np.transpose(X)  
# print("y :\n{}".format(y))
# print("y shape :\n{}".format(y.shape))
print("X :{},y :{}".format(X.shape,y.shape))
print("----------------------------------------")num_examples = len(X) # 样本数   本例题为200
nn_input_dim = 2 # 输入的维度   本例题有两个特征向量
# nn_output_dim = 2 # 输出的类别个数  分为两类
nn_output_dim = 3 # 输出的类别个数  分为三类# 梯度下降参数
epsilon = 0.01 # 学习率
reg_lambda = 0.01 # 正则化参数# 定义损失函数,计算损失(才能用梯度下降啊...)
def calculate_loss(model,X=X,y=y,num_examples=num_examples):'''input: model,  X,  y,  num_examples样本的数量(200或者1000)'''W1, b1, W2, b2 = model['W1'], model['b1'], model['W2'], model['b2']
#     print("W1:{}\nb1:{}\nW2:{}\nb2:{}\n".format(W1,b1,W2,b2))
#     print("X:{}\n".format(X.shape))# 向前推进,前向运算z1 = X.dot(W1) + b1  #200*2*2*10 =200*10,  200*10+200*10=200*10 ,z1:200*3# print("X.dot(W1):{}".format(X.dot(W1).shape))# print("z1:{}\n".format(z1.shape))a1 = np.tanh(z1)  #a1:200*10# print("a1:{}".format(a1.shape))  # 激活z2 = a1.dot(W2) + b2  #200*10*10*3=200*3  , b2:1*3->200*3 , z2:200*3exp_scores = np.exp(z2)  #200*3                 # 全部取指数   softmax函数# print("exp_scores.shape: {} ".format(exp_scores.shape)) probs = exp_scores / np.sum(exp_scores, axis=1, keepdims=True)  #np.sum()  将矩阵按列相加,全部加到第一列 , 200*3/200*1->200*3/200*3
#     print("np.sum:{}".format(np.sum(exp_scores, axis=1, keepdims=True).shape))# print("probs:{}".format(probs))    # 概率值  200*3# 计算损失   交叉熵函数corect_logprobs = -np.log(probs[range(num_examples), y])  #取prob这个200*3的概率矩阵的每一行,具体是第几列是靠对应的y来确定的 #200*1
#     print("y:{}".format(y))data_loss = np.sum(corect_logprobs)    #200行加在一起->1*1  一个数
#     print("corect_logprobs:{}".format(corect_logprobs.shape))  #200*1
#     print("data_loss:{}".format(data_loss))  #200行加在一起->1*1  一个数# 也得加一下正则化项data_loss += reg_lambda/2 * (np.sum(np.square(W1)) + np.sum(np.square(W2)))  #W1:2*3 W2:3*2  data_loss是一个数
#     print("data_loss:{}".format(data_loss))
#     print("1./num_examples * data_loss:{}".format(1.*data_loss/num_examples  ))return 1./num_examples * data_loss   #返回一个数,作为损失值# 完整的训练建模函数定义
def build_model(nn_hdim, num_passes=20000, print_loss=False):'''参数:1) nn_hdim: 隐层节点个数   作业为102)num_passes: 梯度下降迭代次数3)print_loss: 设定为True的话,每1000次迭代输出一次loss的当前值'''# 随机初始化一下权重呗np.random.seed(0)  #seed只对第一组随机数起作用W1 = np.random.randn(nn_input_dim, nn_hdim) / np.sqrt(nn_input_dim) # nn.sqrt打印nn_input_dim=2的开方,也就是1.414
#     print("nn.sqrt:{}".format(np.sqrt(nn_input_dim)))
#     print("W1:{}".format(W1))
#     print(" np.random.randn(nn_input_dim, nn_hdim):{}",format( np.random.randn(nn_input_dim, nn_hdim)))b1 = np.zeros((1, nn_hdim))W2 = np.random.randn(nn_hdim, nn_output_dim) / np.sqrt(nn_hdim)  b2 = np.zeros((1, nn_output_dim))# 这是咱们最后学到的模型model = {}loss=[]    # 损失# 开始梯度下降...for i in range(0, num_passes):# 前向运算计算lossz1 = X.dot(W1) + b1a1 = np.tanh(z1)   # 激活函数 tanhz2 = a1.dot(W2) + b2exp_scores = np.exp(z2)probs = exp_scores / np.sum(exp_scores, axis=1, keepdims=True)    # softmax 得到概率# print("probs shape: {}".format(probs.shape))     #  概率值  200*3# 反向传播delta3 = probs             #### 200*2  每一列表示对应的概率delta3[range(num_examples), y] -= 1    # 200# print("delta3:{}".format(delta3.shape))   ################################# print("delta3:{}".format(delta3))   ################################# 增量dW2 = (a1.T).dot(delta3)db2 = np.sum(delta3, axis=0, keepdims=True)delta2 = delta3.dot(W2.T) * (1 - np.power(a1, 2))dW1 = np.dot(X.T, delta2)db1 = np.sum(delta2, axis=0)# 加上正则化项dW2 += reg_lambda * W2dW1 += reg_lambda * W1# 梯度下降 更新参数W1 += -epsilon * dW1b1 += -epsilon * db1W2 += -epsilon * dW2b2 += -epsilon * db2# 得到的模型实际上就是这些权重model = { 'W1': W1, 'b1': b1, 'W2': W2, 'b2': b2}loss.append(calculate_loss(model))              # 将所有的loss放在一个list中# 如果设定print_loss了,那我们汇报一下中间状况if print_loss and i % 1000 == 0:print("Loss after iteration {}: {} ".format(i,calculate_loss(model)))# print("loss:{}".format(loss))     # 输出总的loss  一个list个格式# 绘制train-loss曲线fig = plt.figure()ax = fig.add_subplot(1, 1, 1)ax.set_title('train-loss')ax.set_ylim([0, 1])ax.plot(loss)plt.savefig('./inference/train-loss')plt.show()return model# 判定结果的函数
def predict(model, x):W1, b1, W2, b2 = model['W1'], model['b1'], model['W2'], model['b2']# 前向运算z1 = x.dot(W1) + b1a1 = np.tanh(z1)z2 = a1.dot(W2) + b2exp_scores = np.exp(z2)  #200*3# 计算概率输出最大概率对应的类别probs = exp_scores / np.sum(exp_scores, axis=1, keepdims=True) #200*3# print('probs:{}'.format(probs))    # 输出概率矩阵return np.argmax(probs, axis=1)  #返回200行中,每一行的最大的值,得到的矩阵是一个200*1的矩阵,表示200个元素对应的类别# 计算精度
def getAcc(pred,y):ac=sum(pred==y)/len(pred)   ## 统计两个数组相同元素的数目# ac=sum(pred==y)   ## 统计两个数组相同元素的数目return ac*100.0# 建立隐层有10个节点(神经元)的神经网络
model = build_model(10, print_loss=True)
print("-------------------------")
# print("model:{}".format(model))
# 评价训练集
pred=predict(model,X)   # 得到预测值# 计算损失
train_loss=calculate_loss(model,X,y)
print("train_loss:{}".format(train_loss))# print("pred:{}".format(pred))
# print("y :{}".format(y))# 计算精度
# print("y shape:{},pred shape:{}".format(y.shape,pred.shape))         #  y shape:(200,),pred shape:(200,)
print("Train Acc:{}%".format(getAcc(pred,y)))# 可视化训练集
visualization(np.transpose(X),y,True,path='./inference/train.png')
compare_visual(np.transpose(X),y,pred,True,path='./inference/compare_train.png',loss=train_loss)print("------------------Test------------------")
##### 生成测试集数据 1000个点
X_test,y_test=gen_classify_data(1000)
y_test=np.argmax(y_test,axis=0)         # [1,0,0]-->0;        [0,1,0]-->1;        [0,0,1]-->2;
X_test=np.transpose(X_test)             # 2*1000 ---> 1000*2
# print("y :\n{}".format(y))
# print("y shape :\n{}".format(y.shape))
print("X_test :{},y_test :{}".format(X_test.shape,y_test.shape))        # X_test :(1000, 2),y_test :(1000,)# 得到预测值
pred_test = predict(model,X_test)   # 得到预测值# 计算损失
test_loss = calculate_loss(model,X_test,y_test,len(X_test))
print("test_loss:{}".format(test_loss))# 计算精度
print("Test Acc:{}%".format(getAcc(pred_test,y_test)))# 可视化训练集
visualization(np.transpose(X_test),y_test,save=True,path='inference/test.png')
compare_visual(np.transpose(X_test),y_test,pred_test,save=True,path='inference/compare_test.png',loss=test_loss)

可视化

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述

MNIST手写数字体识别

给出三种实现方式

1、MLP

'''
@Description: mlp MNIST手写数字体识别
@Author: Su Yunzheng
@Date: 2020-06-18 16:14:32
@LastEditTime: 2020-06-18 17:18:14
@LastEditors: Su Yunzheng
'''### 查看tensorboard:
# (tf) C:\Users\11604>tensorboard --logdir F:\睿慕课\7\苏云征-三维点云7\logs  --host=127.0.0.1import tensorflow as tf
import matplotlib.pyplot as plt
import os
import numpy as np
os.environ["TF_CPP_MIN_LOG_LEVEL"] = "2"from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets("MNIST_DATA",one_hot=True)    #onehot对标签的标注,非onehot是1,2,3.onehot就是只有一个1其余全是0#超参数(学习率,batch的大小,训练的轮数,多少轮展示一下loss)
learning_rate = 0.2     # 学习率
num_step = 20          # 迭代次数
batch_size = 128        # 一个batch的size
n_batch=mnist.train.num_examples//batch_size    # 有多少个batch
display_step =100     # 多少轮打印一次#网络参数(有多少层网络,每层有多少个神经元,整个网络的输入是多少维度的,输出是多少维度的)
num_input = 784     #(28*28)
h1=1000             # 隐藏层 这个是没用到的
num_class = 10      # 输出#图的输入
X = tf.placeholder(tf.float32,[None,num_input])
Y = tf.placeholder(tf.float32,[None,num_class])#网络的权重和偏向,如果是两个隐层的话需要定义三个权重,包括输出层
weights={'out':tf.Variable(tf.zeros([num_input,num_class]))}biase = {'out':tf.Variable(tf.zeros([num_class]))
}#定义网络结构
def neural_net(x):# h1_out = tf.matmul(x,weights['h1'])+biase['h1']out_layer = tf.matmul(x,weights['out'])+biase['out']return out_layer#模型输出处理
logits = neural_net(X)
prediction = tf.nn.softmax(logits)    # 得到batch_size*10的概率矩阵# 定义损失和优化器
loss_op = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits_v2(logits=logits,labels=Y))
optimizer = tf.train.GradientDescentOptimizer(learning_rate = learning_rate)
train_step = optimizer.minimize(loss_op)#评估模型准确率
correct_pred = tf.equal(tf.argmax(prediction,1),tf.argmax(Y,1))    #结果存放在一个布尔型列表中(argmax函数返回一维张量中最大的值所在的位置)
accuracy = tf.reduce_mean(tf.cast(correct_pred,tf.float32))   #求准确率(tf.cast将布尔值转换为float型)#初始化变量
init = tf.global_variables_initializer()mse_summary=tf.summary.scalar("loss", loss_op)
# Create a summary to monitor accuracy tensor
acc_summary=tf.summary.scalar("accuracy", accuracy)
file_writer = tf.summary.FileWriter('./logs',tf.get_default_graph())#开始训练
with tf.Session() as sess:sess.run(init)for step in range(num_step):   # 总迭代for batch in range(n_batch):batch_x,batch_y = mnist.train.next_batch(batch_size)_,los,ac=sess.run([train_step,mse_summary,acc_summary],feed_dict={X:batch_x,Y:batch_y})# 记录下来每一次训练的数据file_writer.add_summary(los,step*n_batch+batch)   # lossfile_writer.add_summary(ac,step*n_batch+batch)    # acc# if step % display_step == 0 or step == 1:# print("step:{},loss:{},acc:{}".format(step,loss,acc))acc=sess.run(accuracy,feed_dict={X:mnist.test.images,Y:mnist.test.labels})print("Iter:{},testing Accuracy:{}".format(step,acc))print("优化完成!")#训练完模型后,开始测试# 读取图片# print(mnist.test.images.shape)          #(10000, 784)plt.imshow(mnist.test.images[0].reshape(28,28))plt.show()pred_pic=mnist.test.images[0].reshape(1,-1)pred_num=sess.run(prediction,feed_dict={X:pred_pic})print("预测结果:{}".format( np.argmax(pred_num) ))

在这里插入图片描述

2、K-近邻

3、CNN

'''
@Description: cnn MNIST手写数字体识别
@Author: Su Yunzheng
@Date: 2020-06-18 16:14:39
@LastEditTime: 2020-06-18 16:14:39
@LastEditors: Su Yunzheng
'''### 查看tensorboard:
# (tf) C:\Users\11604>tensorboard --logdir F:\睿慕课\7\苏云征-三维点云7\logs  --host=127.0.0.1import numpy as np
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
import matplotlib.pyplot as pltmnist = input_data.read_data_sets("MNIST_DATA", one_hot=True)logs_path = './log/example/' # log存放位置
batch_size = 50
n_batch=mnist.train.num_examples//batch_size    # 有多少个batchdef weight_variable(shape,namew='w'):initial = tf.truncated_normal(shape, stddev=0.1)return tf.Variable(initial,name=namew)def bias_variable(shape,nameb='b'):initial = tf.constant(0.1, shape=shape)return tf.Variable(initial,name=nameb)def conv2d(x, W,namec='c'):return tf.nn.conv2d(x, W, strides=[1, 1, 1, 1], padding='SAME',name=namec)def max_pool_2x2(x,namep='p'):return tf.nn.max_pool(x, ksize=[1, 2, 2, 1], strides=[1, 2, 2, 1], padding='SAME',name=namep)x = tf.placeholder(tf.float32, [None, 784],name='xinput')
y_ = tf.placeholder(tf.float32, [None, 10])
x_image = tf.reshape(x, [-1, 28, 28, 1])# Conv1 Layer
W_conv1 = weight_variable([5, 5, 1, 32],'w1')
b_conv1 = bias_variable([32],'b1')
h_conv1 = tf.nn.relu(conv2d(x_image, W_conv1) + b_conv1,'c1')
h_pool1 = max_pool_2x2(h_conv1,'p1')# Conv2 Layer
W_conv2 = weight_variable([5, 5, 32, 64],'w2')
b_conv2 = bias_variable([64],'b2')
h_conv2 = tf.nn.relu(conv2d(h_pool1, W_conv2) + b_conv2)
h_pool2 = max_pool_2x2(h_conv2)W_fc1 = weight_variable([7 * 7 * 64, 1024],'wf1')
b_fc1 = bias_variable([1024],'bf1')
h_pool2_flat = tf.reshape(h_pool2, [-1, 7 * 7 * 64])
h_fc1 = tf.nn.relu(tf.matmul(h_pool2_flat, W_fc1) + b_fc1)keep_prob = tf.placeholder(tf.float32,name="prob")
h_fc1_drop = tf.nn.dropout(h_fc1, keep_prob)W_fc2 = weight_variable([1024, 10],'wfull2')
b_fc2 = bias_variable([10],'bf2')
y_conv = tf.nn.softmax(tf.matmul(h_fc1_drop, W_fc2) + b_fc2)cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y_conv), reduction_indices=[1]))
train_step = tf.train.AdamOptimizer(1e-4).minimize(cross_entropy)correct_prediction = tf.equal(tf.argmax(y_conv, 1), tf.argmax(y_, 1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))init=tf.global_variables_initializer()# tensorboard相关的
# Create a summary to monitor cost tensor
mse_summary=tf.summary.scalar("loss", cross_entropy)
# Create a summary to monitor accuracy tensor
acc_summary=tf.summary.scalar("accuracy", accuracy)
file_writer = tf.summary.FileWriter('./logs',tf.get_default_graph())
# Merge all summaries into a single op
# merged_summary_op = tf.summary.merge_all()#开始训练
with tf.Session() as sess:sess.run(init)# op to write logs to Tensorboard# summary_writer = tf.summary.FileWriter("logs/", graph=tf.get_default_graph())saver = tf.train.Saver()for i in range(2):for batch_i in range(n_batch):batch = mnist.train.next_batch(batch_size)sess.run(train_step,feed_dict={x: batch[0], y_: batch[1], keep_prob: 0.5})summary_str = mse_summary.eval(feed_dict={x:batch[0],y_:batch[1],keep_prob:1.0})accuracy_str=acc_summary.eval(feed_dict={x:batch[0],y_:batch[1],keep_prob:1.0})# 记录下来每一次训练的数据file_writer.add_summary(summary_str,i*n_batch+batch_i)file_writer.add_summary(accuracy_str,i*n_batch+batch_i)# 训练集精度if (batch_i%500==0):train_accuracy = sess.run(accuracy,feed_dict={x: batch[0], y_: batch[1], keep_prob: 1.0})print("Iter %d, batch_i %d,training accuracy %g" % (i,batch_i, train_accuracy))# 一次遍历完整个数据集,打印测试集精度test_acc=sess.run(accuracy,feed_dict={x: mnist.test.images, y_: mnist.test.labels, keep_prob: 1.0})print("Iter %d, test accuracy %g" % (i, test_acc))saver.save(sess, "Model/model.ckpt")print("model saved!")# 测试#训练完模型后,开始测试# 读取图片# print(mnist.test.images.shape)          #(10000, 784)plt.imshow(mnist.test.images[0].reshape(28,28))plt.show()pred_pic=mnist.test.images[0].reshape(1,-1)# print("pred_pic:{}".format(pred_pic.shape))  # pred_pic:(1, 784)pred_num=sess.run(y_conv,feed_dict={x:pred_pic,keep_prob: 1.0})   # 这是一个1*10的概率矩阵 , 这里feed_dict中要有keep_prob,否则会报错# print("概率矩阵softmax:{}".format(pred_num.shape))print("预测结果:{}".format( np.argmax(pred_num) ))

在这里插入图片描述

参考

tensorboard生成的网址打不开的解决方法

tensorboard可视化图和损失曲线

tensorboard 手写数字识别可视化训练过程 (tensorflow小案例)

这篇关于【睿慕课点云处理】第七章-深度学习基础的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/755937

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识