监督学习和无监督学习

news2024/11/16 1:55:31

文章目录

  • 监督学习和无监督学习
    • 监督学习算法包括
    • 无监督学习算法包括
    • OpenCV十个子类
    • 举例:


监督学习和无监督学习

监督学习和无监督学习是机器学习领域中两种不同的学习范式,它们之间的区别在于数据的标签或标记的可用性以及学习任务的性质。

  1. 监督学习(Supervised Learning):

    • 监督学习是一种利用带有标签(标记)的数据进行训练的机器学习方法。
    • 在监督学习中,训练数据包含输入样本和对应的标签(预期输出)。
    • 学习的目标是通过训练数据构建一个模型,该模型能够对新的未标记数据进行预测或分类。
    • 监督学习的典型应用包括分类(如垃圾邮件识别)和回归(如房价预测)等。
  2. 无监督学习(Unsupervised Learning):

    • 无监督学习是一种在没有标签(标记)的数据中发现模式和结构的机器学习方法。
    • 在无监督学习中,训练数据只包含输入样本,没有相应的标签或预期输出。
    • 学习的目标是从数据中推断出隐藏的结构、关系或规律。
    • 无监督学习的典型应用包括聚类(将数据划分为类别)、降维(减少数据的维度)和关联规则挖掘等。

总结:
监督学习需要有带有标签的训练数据,目标是训练模型进行预测或分类。而无监督学习则不需要标签,目标是从未标记数据中发现结构和模式。监督学习的任务是明确的,而无监督学习的任务是隐式的,需要从数据中提取有用的信息。两者在应用场景和数据类型上都有所不同,选择使用哪种学习方法取决于具体的问题和可用数据。

监督学习和无监督学习的主要区别可以总结如下:

  1. 数据类型:在监督学习中,训练数据包含输入样本和相应的标签(预期输出)。而在无监督学习中,训练数据只包含输入样本,没有相应的标签或预期输出。

  2. 学习目标:监督学习的目标是通过训练数据构建一个模型,该模型能够对新的未标记数据进行预测或分类。而无监督学习的目标是从数据中推断出隐藏的结构、关系或规律。

  3. 应用场景:监督学习常用于分类和回归等任务,其中我们有明确的目标和标签信息。无监督学习常用于聚类、降维和关联规则挖掘等任务,其中我们试图从未标记的数据中发现模式和结构。

  4. 数据需求:监督学习需要带有标签的训练数据,这通常需要人工标注或专家知识。而无监督学习不需要标签,因此可以利用更丰富的未标记数据。

  5. 模型评估:在监督学习中,我们可以使用标签信息来评估模型的性能,例如计算分类准确度或均方误差。而在无监督学习中,评估模型的性能更加困难,通常需要使用一些内部指标或人工验证。

尽管监督学习和无监督学习有明显的区别,但在实际应用中,它们也可以相互结合使用。例如,可以使用无监督学习进行数据预处理和特征提取,然后使用监督学习算法构建分类模型。这种结合使用的方法被称为半监督学习。此外,还有其他学习范式,如强化学习,它涉及在动态环境中学习最佳行动策略。

监督学习算法包括

监督学习中有多种算法可用于分类和回归任务。以下是一些常见的监督学习算法:

  1. 决策树(Decision Trees):决策树根据特征的值进行分割,并根据最终的叶节点进行预测或分类。它易于理解和解释,可处理离散和连续特征,适用于分类和回归任务。

  2. 支持向量机(Support Vector Machines,SVM):SVM是一种基于间隔最大化的二分类算法。它通过在特征空间中找到一个最优超平面来进行分类。SVM可以处理线性和非线性问题,并具有较强的泛化能力。

  3. 朴素贝叶斯(Naive Bayes):朴素贝叶斯是一组基于贝叶斯定理和特征条件独立性假设的概率分类算法。它通过计算后验概率来进行分类,并假设特征之间相互独立。

  4. K最近邻(K-Nearest Neighbors,KNN):KNN基于实例之间的距离进行分类。它根据最近的K个邻居的标签进行预测,适用于分类和回归问题。

  5. 线性回归(Linear Regression):线性回归用于预测连续输出变量的值。它建立了输入特征和输出之间的线性关系,并根据最小化误差来拟合最佳拟合线。

  6. 逻辑回归(Logistic Regression):逻辑回归用于二分类问题。它使用逻辑函数(sigmoid函数)将线性组合的特征转换为概率,并基于阈值进行分类。

  7. 随机森林(Random Forests):随机森林是一种集成学习方法,通过组合多个决策树来进行分类或回归。它使用随机特征选择和投票来提高模型的准确性和泛化能力。

  8. 梯度提升(Gradient Boosting):梯度提升是一种通过迭代训练弱学习器并进行加权组合来提高模型性能的集成方法。常见的梯度提升算法包括梯度提升树(Gradient Boosted Trees)和XGBoost。

以上只是一些常见的监督学习算法示例,实际上还有其他许多算法和变体可供选择,每个算法都有其适用的场景和假设。选择合适的算法取决于数据的特征、问题的性质和性能需求。

无监督学习算法包括

无监督学习涉及从未标记的数据中发现模式、结构和关联。以下是一些常见的无监督学习算法:

  1. 聚类算法(Clustering Algorithms):聚类算法用于将数据样本划分为不同的组或簇,每个簇内的样本具有相似的特征。常见的聚类算法包括K均值聚类(K-means clustering)、层次聚类(Hierarchical clustering)和DBSCAN(Density-Based Spatial Clustering of Applications with Noise)。

  2. 主成分分析(Principal Component Analysis,PCA):PCA是一种降维算法,用于减少数据的维度,同时保留最重要的特征。它通过线性变换将原始特征映射到较低维度的新特征空间,其中新特征称为主成分。

  3. 关联规则挖掘(Association Rule Mining):关联规则挖掘用于发现数据中的频繁项集和关联规则。它可以揭示数据中的隐含关系和相关性,例如超市购物篮中的商品组合。Apriori算法和FP-Growth算法是常用的关联规则挖掘算法。

  4. 异常检测(Anomaly Detection):异常检测算法用于识别数据中的异常或异常行为。它通过与正常模式的差异来识别异常样本,有助于发现潜在的问题或异常情况。

  5. 自组织映射(Self-Organizing Maps,SOM):SOM是一种神经网络算法,用于将多维数据映射到一个二维或三维的拓扑结构上。它可以可视化数据的分布和聚类结构。

  6. 高斯混合模型(Gaussian Mixture Models,GMM):GMM是一种概率模型,用于建模多个高斯分布的组合。它可以用于聚类、密度估计和生成新的样本。

  7. t-SNE:t-SNE是一种非线性降维算法,用于可视化高维数据。它能够在保持数据之间的局部和全局关系的同时,将高维数据映射到低维空间。

这些算法只是无监督学习中的一些常见例子。根据具体的问题和数据,可能会选择其他算法或算法组合来发现数据中的模式、结构和关联。

OpenCV十个子类

在这里插入图片描述

在OpenCV 4.5.1版本中,cv::ml::StatModel类是一个抽象基类,用于表示统计模型。它定义了许多用于机器学习任务的通用接口和方法。在这个版本中,cv::ml::StatModel有以下八个子类:

  1. cv::ml::SVM:支持向量机(Support Vector Machine)是一种二分类模型,它通过在特征空间中找到一个超平面来实现分类。cv::ml::SVM类提供了训练和预测SVM模型的功能,并且支持不同的内核函数和参数设置。

  2. cv::ml::KNearest:K最近邻(K-Nearest Neighbors)是一种基于实例的学习方法,它通过计算输入样本与训练样本之间的距离来进行分类。cv::ml::KNearest类实现了K最近邻算法,可以用于分类和回归任务。

  3. cv::ml::DTrees:决策树(Decision Trees)是一种常见的机器学习算法,用于分类和回归问题。cv::ml::DTrees类实现了决策树算法,支持二叉和多叉决策树,并提供了一些参数用于控制树的生长和剪枝。

  4. cv::ml::RTrees:随机森林(Random Forests)是一种集成学习方法,通过组合多个决策树来进行分类和回归。cv::ml::RTrees类是随机森林的实现,它支持二叉和多叉决策树,提供了参数用于控制森林的大小和生长。

  5. cv::ml::Boost:Boosting是一种集成学习方法,通过串行训练多个弱分类器来构建一个强分类器。cv::ml::Boost类实现了Boosting算法,支持二分类和多分类任务,并提供了参数用于控制弱分类器的数量和类型。

  6. cv::ml::ANN_MLP:人工神经网络(Artificial Neural Network)是一种模拟人脑神经系统的计算模型,用于进行模式识别和函数逼近。cv::ml::ANN_MLP类实现了多层感知器(Multilayer Perceptron)神经网络,支持多层、多输出和非线性激活函数。

  7. cv::ml::LogisticRegression:逻辑回归(Logistic Regression)是一种用于二分类问题的线性模型,通过将输入特征映射到一个概率函数来进行分类。cv::ml::LogisticRegression类实现了逻辑回归算法,并提供了参数用于控制正则化和收敛性。

  8. cv::ml::EM:期望最大化(Expectation-Maximization)是一种用来估计具有隐藏变量的概率模型参数的方法。cv::ml::EM类实现了EM算法,用于高斯混合模型(Gaussian Mixture Model)的训练和参数估计。

  9. cv::ml::SVMSGD类是一个线性分类器,使用随机梯度下降算法来训练支持向量机模型。它适用于处理大规模数据集,因为随机梯度下降算法对数据进行逐个样本的更新,而不需要在整个数据集上进行计算。
    cv::ml::SVMSGD类提供了训练和预测支持向量机模型的功能。它支持不同的损失函数、正则化和优化参数的设置,以及在线学习和增量学习的能力。

  10. cv::ml::NormalBayesClassifier是一个基于贝叶斯决策理论的分类器,假设每个类别的特征值都符合正态分布。它通过计算输入特征的条件概率来进行分类,利用贝叶斯公式和最大似然估计进行模型训练和预测。
    cv::ml::NormalBayesClassifier类提供了训练和预测正态贝叶斯分类器的功能。它可以处理多类别分类问题,并支持不同的参数设置,如类先验概率的估计和特征的独立性假设。

在OpenCV 4.5.1版本中,cv::ml::StatModel类有以下十个子类,用于机器学习任务:

  1. cv::ml::SVM:支持向量机(Support Vector Machine),用于二分类和多分类问题。

  2. cv::ml::KNearest:K最近邻(K-Nearest Neighbors),用于分类和回归任务。

  3. cv::ml::DTrees:决策树(Decision Trees),支持二叉和多叉决策树的分类和回归。

  4. cv::ml::RTrees:随机森林(Random Forests),用于分类和回归任务。

  5. cv::ml::Boost:Boosting算法,用于二分类和多分类问题。

  6. cv::ml::ANN_MLP:多层感知器(Artificial Neural Network),用于模式识别和函数逼近。

  7. cv::ml::LogisticRegression:逻辑回归(Logistic Regression),用于二分类问题。

  8. cv::ml::EM:期望最大化(Expectation-Maximization),用于高斯混合模型的参数估计。

  9. cv::ml::SVMSGD:支持向量机的随机梯度下降版本,适用于大规模数据集。

  10. cv::ml::NormalBayesClassifier:正态贝叶斯分类器,基于贝叶斯决策理论的分类器。

这些子类提供了不同的机器学习算法和模型,适用于各种分类和回归任务。它们具有各自的特定参数和功能,并共享一些通用的方法,如训练(train)、预测(predict)和保存/加载模型(save/load)。

根据上述提到的十个分类器,可以将它们按照监督学习和无监督学习的分类方式进行划分:

监督学习算法:

  1. cv::ml::SVM
  2. cv::ml::KNearest
  3. cv::ml::DTrees
  4. cv::ml::RTrees
  5. cv::ml::Boost
  6. cv::ml::ANN_MLP
  7. cv::ml::LogisticRegression

无监督学习算法:

  1. cv::ml::EM
  2. cv::ml::SVMSGD
  3. cv::ml::NormalBayesClassifier

监督学习算法是指在训练过程中,需要提供带有标签的训练数据,算法通过学习输入特征和相应的标签之间的关系来进行模型训练和预测。这些算法可以用于分类任务(如SVM、K最近邻、决策树、随机森林、逻辑回归和Boosting算法)和回归任务(如多层感知器)。

无监督学习算法是指在训练过程中,不需要提供标签的训练数据,算法通过对数据的统计特征或潜在结构的学习来进行模型训练和预测。这些算法可以用于聚类任务(如期望最大化和正态贝叶斯分类器)和密度估计任务(如支持向量机的随机梯度下降版本)。

需要注意的是,虽然有些算法在上述分类中属于监督学习或无监督学习,但它们可能具有灵活的使用方式,可以根据具体问题的需求进行调整和应用。此外,还有其他类型的学习算法,如半监督学习和强化学习,它们在上述分类中并未提及。

举例:

以下是对于上述十个算法的一些简单的C++使用教程示例。请注意,这些示例仅用于演示目的,具体的实现和参数设置可能因实际问题而有所不同。建议参考OpenCV官方文档和其他学习资源以获取更详细和全面的教程。

  1. cv::ml::SVM 示例:
#include <opencv2/opencv.hpp>

int main() {
    // 创建SVM对象
    cv::Ptr<cv::ml::SVM> svm = cv::ml::SVM::create();

    // 加载训练数据和标签
    cv::Mat trainingData; // 训练数据
    cv::Mat labels;       // 标签
    // ...

    // 设置SVM参数
    svm->setType(cv::ml::SVM::C_SVC);
    svm->setKernel(cv::ml::SVM::RBF);
    // ...

    // 训练SVM模型
    svm->train(trainingData, cv::ml::ROW_SAMPLE, labels);

    // 使用训练好的模型进行预测
    cv::Mat testData;  // 测试数据
    cv::Mat predictions;
    svm->predict(testData, predictions);

    return 0;
}
  1. cv::ml::KNearest 示例:
#include <opencv2/opencv.hpp>

int main() {
    // 创建KNearest对象
    cv::Ptr<cv::ml::KNearest> knn = cv::ml::KNearest::create();

    // 加载训练数据和标签
    cv::Mat trainingData; // 训练数据
    cv::Mat labels;       // 标签
    // ...

    // 设置KNearest参数
    knn->setDefaultK(3);
    knn->setIsClassifier(true);
    // ...

    // 训练KNearest模型
    knn->train(trainingData, cv::ml::ROW_SAMPLE, labels);

    // 使用训练好的模型进行预测
    cv::Mat testData;  // 测试数据
    cv::Mat predictions;
    knn->findNearest(testData, knn->getDefaultK(), predictions);

    return 0;
}
  1. cv::ml::DTrees 示例:
#include <opencv2/opencv.hpp>

int main() {
    // 创建DTrees对象
    cv::Ptr<cv::ml::DTrees> dtrees = cv::ml::DTrees::create();

    // 加载训练数据和标签
    cv::Mat trainingData; // 训练数据
    cv::Mat labels;       // 标签
    // ...

    // 设置DTrees参数
    dtrees->setMaxDepth(10);
    dtrees->setMinSampleCount(2);
    // ...

    // 训练DTrees模型
    dtrees->train(trainingData, cv::ml::ROW_SAMPLE, labels);

    // 使用训练好的模型进行预测
    cv::Mat testData;  // 测试数据
    cv::Mat predictions;
    dtrees->predict(testData, predictions);

    return 0;
}
  1. cv::ml::RTrees 示例:
#include <opencv2/opencv.hpp>

int main() {
    // 创建RTrees对象
   cv::Ptr<cv::ml::RTrees> rtrees = cv::ml::RTrees::create();

    // 加载训练数据和标签
    cv::Mat trainingData; // 训练数据
    cv::Mat labels;       // 标签
    // ...

    // 设置RTrees参数
    rtrees->setMaxDepth(10);
    rtrees->setMinSampleCount(2);
    // ...

    // 训练RTrees模型
    rtrees->train(trainingData, cv::ml::ROW_SAMPLE, labels);

    // 使用训练好的模型进行预测
    cv::Mat testData;  // 测试数据
    cv::Mat predictions;
    rtrees->predict(testData, predictions);

    return 0;
}
  1. cv::ml::Boost 示例:
#include <opencv2/opencv.hpp>

int main() {
    // 创建Boost对象
    cv::Ptr<cv::ml::Boost> boost = cv::ml::Boost::create();

    // 加载训练数据和标签
    cv::Mat trainingData; // 训练数据
    cv::Mat labels;       // 标签
    // ...

    // 设置Boost参数
    boost->setBoostType(cv::ml::Boost::REAL);
    boost->setWeakCount(100);
    // ...

    // 训练Boost模型
    boost->train(trainingData, cv::ml::ROW_SAMPLE, labels);

    // 使用训练好的模型进行预测
    cv::Mat testData;  // 测试数据
    cv::Mat predictions;
    boost->predict(testData, predictions);

    return 0;
}
  1. cv::ml::ANN_MLP 示例:
#include <opencv2/opencv.hpp>

int main() {
    // 创建ANN_MLP对象
    cv::Ptr<cv::ml::ANN_MLP> ann = cv::ml::ANN_MLP::create();

    // 加载训练数据和标签
    cv::Mat trainingData; // 训练数据
    cv::Mat labels;       // 标签
    // ...

    // 设置ANN_MLP参数
    cv::Mat layers = cv::Mat(3, 1, CV_32S);
    layers.at<int>(0) = 10;  // 输入层节点数
    layers.at<int>(1) = 5;   // 隐藏层节点数
    layers.at<int>(2) = 2;   // 输出层节点数
    ann->setLayerSizes(layers);
    ann->setActivationFunction(cv::ml::ANN_MLP::SIGMOID_SYM);
    // ...

    // 训练ANN_MLP模型
    ann->train(trainingData, cv::ml::ROW_SAMPLE, labels);

    // 使用训练好的模型进行预测
    cv::Mat testData;  // 测试数据
    cv::Mat predictions;
    ann->predict(testData, predictions);

    return 0;
}
  1. cv::ml::LogisticRegression 示例:
#include <opencv2/opencv.hpp>

int main() {
    // 创建LogisticRegression对象
    cv::Ptr<cv::ml::LogisticRegression> logistic = cv::ml::LogisticRegression::create();

    // 加载训练数据和标签
    cv::Mat trainingData; // 训练数据
    cv::Mat labels;       // 标签// ...

    // 设置LogisticRegression参数
    logistic->setIterations(100);
    logistic->setLearningRate(0.01);
    // ...

    // 训练LogisticRegression模型
    logistic->train(trainingData, cv::ml::ROW_SAMPLE, labels);

    // 使用训练好的模型进行预测
    cv::Mat testData;  // 测试数据
    cv::Mat predictions;
    logistic->predict(testData, predictions);

    return 0;
}
  1. cv::ml::EM 示例:
#include <opencv2/opencv.hpp>

int main() {
    // 创建EM对象
    cv::Ptr<cv::ml::EM> em = cv::ml::EM::create();

    // 加载训练数据
    cv::Mat trainingData; // 训练数据
    // ...

    // 设置EM参数
    em->setClustersNumber(3);
    // ...

    // 训练EM模型
    cv::Mat logLikelihoods;
    em->trainEM(trainingData, cv::noArray(), cv::noArray(), cv::noArray(), logLikelihoods);

    // 使用训练好的模型进行预测
    cv::Mat testData;  // 测试数据
    cv::Mat labels;
    cv::Mat probs;
    em->predict2(testData, labels, probs);

    return 0;
}
  1. cv::ml::SVMSGD 示例:
#include <opencv2/opencv.hpp>

int main() {
    // 创建SVMSGD对象
    cv::Ptr<cv::ml::SVMSGD> svm = cv::ml::SVMSGD::create();

    // 加载训练数据和标签
    cv::Mat trainingData; // 训练数据
    cv::Mat labels;       // 标签
    // ...

    // 设置SVMSGD参数
    svm->setSvmsgdType(cv::ml::SVMSGD::ASGD);
    svm->setMarginRegularization(0.1);
    // ...

    // 训练SVMSGD模型
    svm->train(trainingData, cv::ml::ROW_SAMPLE, labels);

    // 使用训练好的模型进行预测
    cv::Mat testData;  // 测试数据
    cv::Mat predictions;
    svm->predict(testData, predictions);

    return 0;
}
  1. cv::ml::NormalBayesClassifier 示例:
#include <opencv2/opencv.hpp>

int main() {
    // 创建NormalBayesClassifier对象
    cv::Ptr<cv::ml::NormalBayesClassifier> nbClassifier = cv::ml::NormalBayesClassifier::create();

    // 加载训练数据和标签
    cv::Mat trainingData; // 训练数据
    cv::Mat labels;       // 标签
    // ...

    // 训练NormalBayesClassifier模型
    nbClassifier->train(trainingData, cv::ml::ROW_SAMPLE, labels);

    // 使用训练好的模型进行预测
    cv::Mat testData;  // 测试数据
    cv::Mat predictions;
    cv::Mat likelihoods;
    nbClassifier->predictProb(testData, predictions, likelihoods);

    return 0;
}

这些示例提供了对于每个算法的基本使用方法,但实际应用中可能需要根据具体问题的需求进行参数调整和数据处理。建议参考OpenCV的官方文档和其他学习资源,以获取更详细和全面的教程,并根据实际情况进行适当的修改和优化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/658935.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

与chagpt对话记录

每日chagpt对话记录 关注我一下 vscode 浏览器版本 c 函数 无法跳转 C/C IntelliSense, debugging, and code browsing. C/C IntelliSense、调试和代码浏览是指在使用VS Code进行C/C开发时的一些核心功能。下面是对这些功能的简要说明&#xff1a; IntelliSense&#xff08;智能…

CSS基础学习--18 导航栏

一、导航栏链接列表 作为标准的 HTML 基础一个导航栏是必须的。 在我们的例子中我们将建立一个标准的 HTML 列表导航栏。 导航条基本上是一个链接列表&#xff0c;所以使用 <ul> 和 <li>元素非常有意义 <!DOCTYPE html> <html> <head> <…

山西电力市场日前价格预测【2023-06-19】

日前价格预测 预测明日&#xff08;2023-06-19&#xff09;山西电力市场全天平均日前电价为396.37元/MWh。其中&#xff0c;最高日前价格为468.17元/MWh&#xff0c;预计出现在21: 45。最低日前电价为345.23元/MWh&#xff0c;预计出现在13: 00。 以上预测仅供学习参考&#x…

端口进程内存查看操作(linux、windows)

一 windows操作命令 1、查看某个端口的信息 netstat -aon | findstr "端口" 2、查看PID对应的应用程序名 tasklist | findstr "PID" 3、taskkill /f /t /im 进程名称 然后结束该进程&#xff1a;taskkill /f /t /im 程序名.exe &#xff08;当然你也…

SpringBoot第12讲:SpringBoot接口如何对参数进行校验

SpringBoot第12讲&#xff1a;SpringBoot接口如何对参数进行校验 本文是SpringBoot第12讲&#xff0c;使用SpringBoot开发Restful接口时, 对于接口的查询参数后台也是要进行校验的&#xff0c;同时还需要给出校验的返回信息&#xff0c;放到上文我们统一封装的结构中。那么如何…

经典问题解析一

关于 const 的疑问 const 什么时候为只读变量&#xff1f;什么时候为常量&#xff1f; const 常量的判别标准 只有用字面量初始化的 const 常量才会进入符号表 (const 引用除外) 使用其他变量初始化的 const 常量仍然是只读变量 被 volatile 修饰的 const 常量不会进入符号…

TOGAF10®标准中文版--(架构开发方法)开发周期

1.2.1 关键点 以下是关于 ADM 的关键点&#xff1a; ADM 在整个过程中、阶段之间和阶段内都是迭代的&#xff08;参见TOGAF 标准 — ADM 技术&#xff09; 对于 ADM 的每次迭代&#xff0c;都必须做出新的决定&#xff1a; — 企业覆盖范围待定 — 要定义的详细程度 — 目…

ETCD安装部署与etcdctl常用命令

ETCD安装部署与etcdctl常用命令 单机部署集群部署静态配置服务发现etcd自发现模式DNS自发现模式 etcdctl常用命令key的常规操作key的历史与watchwatch压缩 租约 etcd常用配置参数member相关参数cluster相关参数proxy相关参数安全相关参数日志相关参数不安全相关参数统计相关参数…

存储笔记10 虚拟化

存储虚拟化 识别不同的虚拟化技术 描述块级虚拟化技术 描述文件级虚拟化技术 讨论虚拟资源调配 Virtualization Overview 何为虚拟化 物理资源抽象到逻辑视图IT利用率和表现集中/共享资源简化资源管理减少停机时间 planned or unplanned 提高IT资源性能 虚拟内存虚拟网…

如何下载并安装Ubuntu22.04

Info 用于帮助不熟悉Ubuntu的朋友安装Ubuntu系统。 Herman Ye Auromix 2023-06-18 1.下载Ubuntu镜像 首先&#xff0c;前往Ubuntu官网下载镜像。 选择 Ubuntu 22.04.2 LTS&#xff0c;点击Download 22.04.2进行下载。 2.准备镜像烧录工具 前往balena官网下载烧录工具. 点击…

ER图和对应关系模式(只写关键)

本图用Visio进行绘图&#xff1a; ●矩形框内表明实体名 ●菱形框内表明联系类型 ●椭圆框内表明属性&#xff0c;可以是实体的属性&#xff0c;也可以是联系类型的属性 ●关键码的属性&#xff0c;在属性名下加下划线 ER图转关系模式说明&#xff1a; ER图中间含1&#xf…

永磁同步直线电机学习笔记——什么是直线电机?

永磁同步直线电机&#xff08;Permanent Magnet Linear Synchronous Motor&#xff0c;简称PMLSM&#xff09;是一种电动机&#xff0c;它通过将永磁体和线圈组合在一起&#xff0c;将电能转化为机械运动。与传统的旋转电机不同&#xff0c;PMLSM是一种直线运动电机&#xff0c…

AI 绘画(2):Ai模型训练,实现“人物模型“自由

文章目录 文章回顾感谢人员题外话Ai绘画公约Ai模型训练硬件要求显存设置查看显存大小显存过小解决方法 视频教程前期准备SD配置设置SD设置配置SD训练配置pt生成训练集收集训练集要求截图软件推荐训练集版权声明一键重命名图片训练图片来源批量修改图片尺寸 开始训练导入训练集&…

mybatis02 CRUD

CRUD代表四个基本功能&#xff1a;创建&#xff08;Create&#xff09;、检索&#xff08;Retrieve&#xff09;、更新&#xff08;Update&#xff09;和删除&#xff08;Delete&#xff09;。它们是大多数应用程序所需要的最基本的持久化操作。 - 创建&#xff08;Create&…

【Java入门】-- Java基础详解之 [Java面向对象编程(初级)]

目录 1.类与对象 2.类与对象的区别与联系 3.对象在JVM内存中的存在形式(重要) 4.属性/成员变量/字段 5.如何创建对象 6.类和对象的内存分配机制 7.面向对象的三大特征&#xff1f; 8.面向对象和面向过程&#xff1f; 9.匿名对象 10.方法(method) 11.方法的重载(over…

一个AI关键词能卖500块?AI绘画引发研究关键词的商机

一个AI关键词能卖500块&#xff1f;AI绘画引发研究关键词的商机&#xff01; 绘画一直被人们看作是视觉艺术的呈现方式。通常情况下&#xff0c;学习绘画需要理解调色、构图和线条等要素。然而&#xff0c;自从AI介入绘画领域后&#xff0c;绘画的"画风"迅速发生了变…

Mac下载安装vscode

1. 下载 先从 https://code.visualstudio.com 下载Mac版vscode。 2. 安装 下载之后在浏览器的下载中点击安装vscode 下载的时候会有提示 有时候还需要配置【安全性与隐私】&#xff0c;即允许App Store和被认可的开发者安装软件 3. 简单配置 默认进来会要求选择主题&a…

1初步整合ABP模块化

1 首先创建一个WebApi项目 2 初步整合ABP模块化 Abp官网&#xff0c;这里我们先初步整合WebApi模块化&#xff0c;待程序运行起来&#xff0c;后续文章我们再对Abp进行深入。 2.1 NuGet&#xff1a;包Volo.Abp Volo,Abp&#xff1a;模块化必备 2.2 NuGet&#xff1a;Volo.Abp.A…

scratch lenet(5): 快速生成随机数的C语言实现

文章目录 1. 目的2. 使用 rand() 的正确姿势3. 使用 TAOCP 公式3.1 实现3.2 使用 4. 随机数&#xff1a;用于 Xavier Glorot 初始化4.1 Xavier Glorot 初始化是什么4.2 使用C语言执行 Xavier Glorot 初始化 5. References 1. 目的 用于 lenet 网络训练开始时&#xff0c; weig…

神奇的 SQL 之 HAVING 一个容易被忽视的主角!

初识 HAVING 关于 SQL 中的 HAVING&#xff0c;相信大家都不陌生&#xff0c;它往往与 GROUP BY 配合使用&#xff0c;为聚合操作指定条件 说到指定条件&#xff0c;我们最先想到的往往是 WHERE 子句&#xff0c;但 WHERE 子句只能指定行的条件&#xff0c;而不能指定组的条件…