利用蓝耘智算平台深度搭建deepseek R1模型,进行深度机器学习

news2025/2/19 1:36:07

大佬请阅读

    • 前言
    • 关于DeepSeek 的显著优点
      • 卓越的性能表现
      • 低廉的训练成本
      • 广泛的应用场景
      • 开放的开源策略
    • DeepSeek 与其他 AI 对比
    • 什么是蓝耘智算平台
      • 为什么使用蓝耘智算平台搭建我们的deepseek
      • 如何使用蓝耘 GPU 智算云平台搭建我们的R1模型并成功进行调用
      • 测试1
        • 1. AVL树节点结构
        • 2. 插入操作
        • 3. 删除操作
        • 4. 旋转操作(通用版本)
        • 5. 注释说明
        • 6. 使用示例
      • 测试2
        • 说明:
        • 输出结果:
        • 改进方向:
    • 总结

前言

在人工智能技术日新月异的时代,AI 模型如雨后春笋般不断涌现,各自在不同领域施展着独特的能力。DeepSeek 以其独有的特性,在 AI 的浩瀚星空中散发着耀眼光芒。接下来,我们将深入剖析 DeepSeek 的优点以及如何利用蓝耘智算平台搭建好我们的deepseek R1模型

关于DeepSeek 的显著优点

卓越的性能表现

  • 语言生成:DeepSeek 在语言生成方面表现卓越,尤其在中文语境下优势突出。它能够生成高度符合中文表达习惯的文本,无论是日常对话、文案创作还是学术写作,都能精准把握语义,输出流畅自然的内容。而且在多轮对话中,它能很好地保持连贯性,理解上下文含义,给出贴合语境的回答。

  • 逻辑推理:面对复杂的逻辑推理任务,DeepSeek 毫不逊色。无论是数学问题求解,还是复杂的逻辑分析,它都能凭借强大的算法和训练数据,条理清晰地进行推理,给出准确的答案和完整的推理过程。

  • 计算效率:DeepSeek 的模型设计经过优化,在保证高性能的同时,对计算资源的消耗较低。这使得它可以在资源有限的环境中高效部署,无论是小型企业的服务器,还是个人电脑,都能轻松运行,大大降低了使用门槛。

低廉的训练成本

以 DeepSeek-V3 为例,其拥有 671 亿参数量和 37 亿激活参数,预训练 token 量高达 14.8 万亿,但训练成本却仅为同类模型 GPT-4o 的二十分之一。如此低的训练成本,使得企业和开发者在大规模应用时,无需承担高昂的费用,能够更经济高效地利用资源。

广泛的应用场景

DeepSeek 适用于多种场景,在智能客服领域,它能快速准确地响应客户咨询,提升客户满意度;在内容创作方面,能为创作者提供创意灵感、生成大纲甚至具体内容;在教育辅助中,帮助学生答疑解惑,辅助教师备课;在数据分析时,能从海量数据中挖掘有价值的信息。

开放的开源策略

DeepSeek 完全开源且支持免费商用和衍生开发,这吸引了全球众多开发者参与到生态建设中。开源不仅提高了模型的透明度,还促进了全球开发者的协作与改进,使得基于 DeepSeek 的创新应用不断涌现,进一步推动了 AI 技术的发展。

DeepSeek 与其他 AI 对比

对比维度DeepSeekGPT-4oGoogle Gemini
语言生成能力中文语境下表现突出,生成文本自然流畅,多轮对话连贯性强整体语言生成能力优秀,但在中文语境下的独特优势不如 DeepSeek在多模态融合下的语言生成有特色,但纯文本生成能力稍逊
逻辑推理能力面对复杂数学和逻辑问题,推理准确且过程清晰逻辑推理能力强,是行业标杆之一在逻辑推理上表现尚可,但重点在多模态任务
计算效率对计算资源消耗低,适合在资源有限环境部署计算资源需求高,部署成本相对较高计算资源需求因任务而异,多模态任务资源需求较大
训练成本以 DeepSeek-V3 为例,训练成本仅为 GPT-4o 的二十分之一训练成本高昂训练成本较高,具体数据因模型版本而异
应用场景智能客服、内容创作、教育辅助、数据分析等,在企业级应用优势明显广泛应用于各类自然语言处理场景专注于多模态任务,如图像描述、视频分析等
开源与专有性完全开源,支持免费商用和衍生开发部分新模型采取专有模式,限制开发者自由使用和深度开发部分开源,多模态相关核心技术专有性较强

综上所述,DeepSeek 在性能、成本、应用和开源等多方面展现出独特优势,尤其是在中文语境和企业级应用场景中表现突出。不同的 AI 模型各有所长,用户在选择时应综合自身需求、预算和应用场景等因素,挑选最适合的 AI 工具。而 DeepSeek 凭借其独特魅力,已在 AI 领域占据重要地位,并有望在未来持续拓展应用边界,为更多领域带来创新变革。

什么是蓝耘智算平台

蓝耘 GPU 智算云平台是依托 Kubernetes 搭建的现代化云平台,具备行业领先的灵活基础设施,以及大规模 GPU 算力资源。它为用户提供开放、高性能且性价比高的算力云服务,全方位助力 AI 客户开展模型构建、训练和推理的全业务流程,同时也为教科研客户加速科研创新。平台致力于为科研工作者、工程师以及创新者打造无可比拟的计算解决方案,其运算速度比传统云服务提供商快 35 倍,成本却降低了 30%。
image.png

在大模型训练场景下,蓝耘算力云平台将运行环境、模型以及训练框架统一打包至容器中,借助定制化的 Kubernetes 容器编排工具,实现容器的调度、管理与扩展。这一举措有效解决了开发环境设置、运维和管理等方面的问题,算法工程师能够运用统一的环境模板进行开发,避免了初期繁杂的开发环境搭建,以及在新环境中管理新算力资源的困扰,为用户提供了便捷的、开箱即用的大模型训练与推理平台。

不仅如此,针对大模型训练中常见的容器进程死机、大规模分布式训练中 GPU 驱动丢失、GPU 硬件损坏、计算节点宕机等难题,蓝耘 GPU 智算云平台都进行了定制化设计,具备自动化调度能力和强大的自愈能力,大幅提升了开发和训练效率,提高了整体资源利用率。

为什么使用蓝耘智算平台搭建我们的deepseek

我们有时候在使用deepseek的时候总是会出现服务器繁忙报错的情况,这样就让我们很难受,如果选择本地部署的话,不仅仅占用我们的内存,最小的模型就需要1GB,而且对我们显卡的要求比较高,并且我们下载的本地模型,调用起来的时候不是那么的智能,有时候也会出现答非所问的情况,所以这个时候我们需要利用我们蓝耘智算平台来进行deepseek R1模型的搭建和调用,使用联网状态的deepseek R1模型,这就可以相较于离线的模型更加智能了
1739174847012.png

如何使用蓝耘 GPU 智算云平台搭建我们的R1模型并成功进行调用

  • 我们可以在蓝耘 GPU 智算云平台进行注册,填写对应的信息我们就可以注册账号,注册好账号之后我们点击已有账号,再次输入我们的账号密码进行登录就行了
    image.png

  • 登录进来之后就是下面的界面,我们点击这个左上角的应用市场,我们可以看到很多的AI大模型,第一个就是我们的deepseek R1模型
    image.png

  • 这里的话为了各位大佬可以看的更加清晰,我们这里使用我们的deepseek-r1_1.5b_7b_8b这个模型
    image.png

  • 点进去我们可以发现相关的介绍,如果使用以及如何进行部署都写的很先详细
    DeepSeek在R1模型的基础上,使用Qwen和Llama蒸馏了几个不同大小的模型,适配目前市面上对模型尺寸的最主流的几种需求。Qwen和Llama系列模型架构相对简洁,并提供了高效的权重参数管理机制,适合在大模型上执行高效的推理能力蒸馏。蒸馏的过程中不需要对模型架构进行复杂修改 减少了开发成本 【 默认账号: lanyunuser@lanyun.net 密码:lanyunuser】
    image.png

  • 我们点击这个右上角的部署按钮,他会弹出我们的配置表格,我们这里选择按量付费,用多少付多少,GPU的型号的话我们选择这个 RTX 4090 ,显存:24GB 内存:120GB 系统盘:30GB SSD

  • GPU卡数的话我们就选择1就行了,如果有大规模需求的话可以多加几个显卡,然后点击购买我们就搞定了
    image.png

  • 如果弹出这个提示的话,我们直接点击确定就行了,然后会直接跳转到我们调用的界面
    image.png

  • 然后等待几分钟等待我们模型的创建,点击这个快速启动应用我们就可以进入到我们deepseek R1模型的使用可视化界面了
    image.png

  • 输入我们在前面应用介绍里面说到的账号密码我们进行登录操作
    【 默认账号: lanyunuser@lanyun.net 密码:lanyunuser】image.png

  • 点击登录我们就能使用我们的deepseek R1大模型了
    这里我们先询问请帮我写出AVL的左右双旋的代码以及详细的注释 deepseek 可以显示他的思考过程以及最终的答案
    1739177136001.jpg

Thought for 4 seconds > 嗯,用户让我帮他写出AVL树的左右双旋的代码,还要有详细的注释。首先,我得弄清楚用户具体需要什么。他可能是一个学生或者开发人员,正在学习或工作中涉及到AVL树相关的内容。 > > AVL树是二叉搜索树的一种自平衡结构,它的特点是每个节点的左子树的高度至少比右子树高一次。左右双旋通常指的是,当一个节点的左子树和右子树都变成单旋转或双旋转的时候,如何进行调整以保持树的平衡。 > > 用户可能需要插入、删除操作的具体实现,尤其是左边和右边的旋转方式。所以,我应该提供这些操作的代码,并给出详细的注释,这样用户能更好地理解每一步的作用。 > > 我得先确定AVL树的基本结构,然后思考在插入和删除时如何进行旋转。当插入一个节点时,可能需要判断其父节点的高度差,如果超过1,就需要进行旋转。同样的,当删除一个节点时,也要调整子树的高度。 > > 左右双旋可能指的是当左边或右边的子树不平衡到需要旋转的时候,要同时考虑另一侧的情况,比如先右旋再左旋或者反过来,这样可以保持整体的平衡。 > > 接下来,我应该设计一个AVLNode类,包含数据、左、右指针以及高度属性。然后实现插入和删除节点的函数,每个函数里都详细处理可能的旋转情况。 > > 在注释部分,要说明每一步操作的目的,比如检查高度差、进行旋转操作,以及如何调整父节点的高度。这样用户可以更清楚地理解代码的逻辑。 > > 最后,我需要测试一下这些方法,确保它们能正确构造和维护一个AVL树,这样用户在使用时不会遇到问题。 以下是AVL树的左右双旋操作(Insert、Delete)的大致思路和代码实现。由于篇幅限制,以下代码不包含类定义部分。

测试1

1. AVL树节点结构

每个节点包含:

  • value: 数据值;
  • left: 左孩子指针;
  • right: 右孩子指针;
  • height: 节点的高度(左高于右)。
2. 插入操作

插入一个新的节点时,可能需要进行一次或多次旋转以确保树的平衡。

public void insert(Node node) {
    Node parent = null;
    int heightDiff = Integer.MIN_VALUE;

    // 找到插入位置的父节点
    while (parent != null && Math.abs(height(parent.left) - height(parent.right)) > 1) {
        if (height(parent.left) > height(parent.right)) {
            if (parent.left == null) {
                parent.left = node;
            } else {
                // 左右双旋:先右旋后左旋
                rotateRight(parent);
            }
        } else {
            if (parent.right == null) {
                parent.right = node;
            } else {
                // 左右双旋:先左旋后右旋
                rotateLeft(parent);
            }
        }

        // 更新父节点的高度差
        heightDiff = Math.abs(height(parent.left) - height(parent.right));
        parent = parent.parent;
    }

    // 当前节点是新插入的叶子节点
    if (parent != null && parent.left == node || parent.right == node) {
        // 调整父节点的高度
        parent.height = 1 + Math.max(height(parent.left), height(parent.right));
    } else {
        // 这个情况不会发生,除非树为空
        throw new RuntimeException("Error: insert logic failed");
    }
}
3. 删除操作

删除一个节点时,也可能需要进行一次或多次旋转以确保树的平衡。

public void delete(Node node) {
    if (node == null || node.left == null && node.right == null) {
        return;
    }

    Node parent = findParent(node);

    // 确定哪个方向需要删除
    if (parent == null || (parent.left == node && height(parent.left) > height(parent.right))) {
        deleteLeft(parent);
    } else {
        deleteRight(parent);
    }
}

private void deleteLeft(Node node) {
    Node rightChild = node.right;
    node.right = null;

    // 调整高度
    int newHeight = height(node.left) >= height(rightChild) ? height(node.left) : height(node.left) + 1;
    node.height = newHeight;

    // 左旋
    rotateLeft(node);

    // 调整父节点的高度(如果有的话)
    if (node.parent != null) {
        int leftHeight = height(node.parent.left);
        int rightHeight = height(node.parent.right);
        node.parent.height = 1 + Math.max(leftHeight, rightHeight);
    }
}

private void deleteRight(Node node) {
    Node leftChild = node.left;
    node.left = null;

    // 调整高度
    int newHeight = height(node.right) >= height(leftChild) ? height(node.right) : height(node.right) + 1;
    node.height = newHeight;

    // 右旋
    rotateRight(node);

    // 调整父节点的高度(如果有的话)
    if (node.parent != null) {
        int leftHeight = height(node.parent.left);
        int rightHeight = height(node.parent.right);
        node.parent.height = 1 + Math.max(leftHeight, rightHeight);
    }
}

// 返回指定节点的父节点
private Node findParent(Node node) {
    // 从根开始向上遍历直到找到正确的父节点
    Node current = root;
    while (current != null && !isChild(current, node)) {
        current = current.left != null ? current.left : current.right;
    }

    return current;
}

// 判断一个节点是否是另一个节点的左孩子或右孩子
private boolean isChild(Node parent, Node child) {
    return (parent.left == child || parent.right == child);
}
4. 旋转操作(通用版本)
public void rotateRight(Node node) {
    // 原来是 node -> node.left -> node.left.left
    // 旋转后,node.right变成新的左孩子
    Node rightChild = node.right;
    node.right = rightChild.right;
    rightChild.right = null;

    // 调整高度
    if (height(node.left) > height(node.right)) {
        node.height++;
    } else {
        node.height = 1 + Math.max(height(node.left), height(node.right));
    }
}

public void rotateLeft(Node node) {
    // 原来是 node -> node.right -> node.right.right
    // 旋转后,node.right变成新的右孩子
    Node leftChild = node.left;
    node.left = leftChild.left;
    leftChild.left = null;

    // 调整高度
    if (height(node.right) > height(node.left)) {
        node.height++;
    } else {
        node.height = 1 + Math.max(height(node.left), height(node.right));
    }
}
5. 注释说明
  • 插入操作

    • 遍历到合适的位置后,判断当前父节点是否满足平衡条件。
    • 如果不满足,进行左右双旋(先右旋再左旋或先左旋再右旋)。
    • 调整父节点高度。
  • 删除操作

    • 找到目标节点的父节点。
    • 根据需要删除的方向(左或右),执行相应的旋转。
    • 调整被删节点的父节点高度。
  • 旋转操作

    • rotateRight:将右子树提上来作为新的左子树。
    • rotateLeft:将左子树提上来作为新的右子树。
    • 调整节点高度,确保递归调用正确计算高度。
6. 使用示例
// 初始化根节点
Node root = new Node(1);
root.left = new Node(2);
root.right = new Node(3);

// 插入节点4到右边的子树中
insert(root, 4, root.right);

// 删除节点3
delete(root, root.right);

// 输出验证
System.out.println("AVL Tree after operations:");
printTree(root);

测试2

我们这里让deepseek随机生成一个机器学习的代码,生成的代码依旧不赖,并且这个思考过程考虑的很充分
image.png

Thought for 4 seconds > 嗯,我现在需要帮助生成一个机器学习的实例代码。首先,我得确定用户的具体需求是什么。他可能对某个特定的模型或者任务感兴趣,比如分类、回归或者聚类。因为用户没有详细说明,所以我应该提供一个通用但具体的例子,让他可以根据自己的项目进行调整。 > > 接下来,我需要考虑选择哪种机器学习模型。常见的有线性回归、逻辑回归、随机森林、KNN等。我觉得随机森林是一种不错的选择,因为它简单易用且适用于分类问题,特别是当数据集较大时,它可以处理好过拟合的问题。 > > 然后,我要决定使用哪个编程语言。Python 是最常用的,特别是在科学计算和机器学习领域。TensorFlow 或 Keras 作为深度学习库,也很受欢迎。而 scikit-learn 是一个功能丰富的机器学习库,适用于传统方法,比如随机森林。 > > 我还需要考虑数据集的问题。可能用户没有提供具体的数据,所以我应该包括数据预处理的步骤,比如读取文件、分割训练集和测试集,以及标准化或归一化数据。这对于模型的性能有很大影响。 > > 另外,我应该添加一些可视化部分,这样用户可以更好地理解模型的表现,比如绘制误差曲线和准确率。这些代码示例可能会帮助用户在自己的项目中进行调试和分析。 > > 我还想包括评估指标,比如训练准确率、验证准确率和测试准确率。这样用户可以了解模型在不同阶段的表现,避免过拟合的问题。 > > 最后,我应该给出一些改进的建议,比如尝试不同的模型参数或数据增强,这样当用户有更多经验后,他们可以逐步优化模型性能。 > > 总的来说,我需要提供一个完整但可扩展的代码示例,让用户能够根据自己的需求进行修改和调整。同时,注释清晰是关键,这样用户即使对机器学习不太熟悉,也能理解每一部分的作用。 以下是一个简单的机器学习实例代码,使用Python的随机森林分类模型来进行手写数字分类(MNIST问题)。这个代码示例包括数据加载、预处理、模型训练和评估。
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score, confusion_matrix, classification_report, roc_auc_score
from sklearn.preprocessing import StandardScaler

# 1. 加载数据集
# 这里假设你有一个CSV文件存储的手写数字,格式类似于以下:
"""
digits.csv:
    0,1,2,3,4,5,6,7,8,9
    0,1,2,3,4,5,6,7,8,9
    ...
    0,1,2,3,4,5,6,7,8,9
    ...
"""
data = pd.read_csv('digits.csv')

# 2. 划分训练集和测试集
X = data.drop(columns=['0','1','2','3','4','5','6','7','8','9'])  # 如果数据中每行有10个数字作为特征
y = data['0']  # 这里假设第一列是目标变量(第一个数字)

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 3. 标准化数据(如果特征有很大的范围)
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)

# 4. 创建随机森林分类模型
model = RandomForestClassifier(random_state=42, n_estimators=10)

# 5. 训练模型
model.fit(X_train_scaled, y_train)

# 6. 预测测试集的结果
y_pred = model.predict(X_test_scaled)
y_proba = model.predict_proba(X_test_scaled)[:, :2]

# 7. 计算评估指标
print("训练准确率:", accuracy_score(y_train, model.fit_transform(X_train_scaled).argmax(axis=1)))
print("\n验证准确率:", accuracy_score(y_test, y_pred))
print("\n分类报告:")
print(classification_report(y_test, y_pred))

# 可视化结果(如果需要)
import matplotlib.pyplot as plt
from sklearn.metrics import confusion_matrix

cm = confusion_matrix(y_test, y_pred)
plt.figure(figsize=(6, 5))
plt.title('Confusion Matrix')
plt.imshow(cm)
plt.colorbar(format='%d')
plt.show()

print("\nROC-AUC Score:", roc_auc_score(y_test, y_proba[:,1]))
说明:
  1. 数据加载与预处理:代码首先从CSV文件中加载数据集,假设每行有10个数字作为特征(每列对应一个数字0-9),第一列是目标变量。
  2. 划分训练集和测试集:使用train_test_split函数将数据集分成训练集和测试集,以便进行交叉验证。
  3. 标准化数据:为了确保模型的收敛性,特征通常会被标准化。这里使用了StandardScaler
  4. 创建随机森林模型:使用RandomForestClassifier,这是一个通用的分类模型,适用于中小规模数据集。
  5. 训练模型:将训练集的特征和标签输入模型,训练模型参数以拟合数据。
  6. 预测测试集:用训练好的模型对测试集进行预测,并生成概率值(如果需要)。
  7. 计算评估指标:计算训练准确率、验证准确率以及分类报告。最后还可以通过ROC-AUC评估模型的性能。
输出结果:
  • 如果你运行这个代码,你会得到一些具体的数值,比如准确率、召回率和F1分数等,这些都是评估分类模型性能的常用指标。
  • 你还能看到混淆矩阵图形,帮助理解模型的预测结果与真实标签之间的关系。
改进方向:
  • 如果你有更多的数据,可以增加随机森林的树的数量(n_estimators参数),以提高模型性能。
  • 你也可以尝试不同的分类算法,比如逻辑回归、SVM或KNN等,比较它们在这个任务上的表现。

希望这段代码能帮助你开始一个机器学习项目!如果有具体的需求,可以告诉我,我会为你提供更针对性的建议。

总结

如果我们想退出的话我们直接就回到我们的启动页面点击关机并且销毁这个实例就行了
image.png

到这里我们可以见得我们的deepseek R1模型十分智能,还富有人性化,自此,ai不是高高在上,不再是死板的回答问题,还富有人情味了
image.png
DeepSeek 就像 AI 领域的超级引擎,凭借强大的算法和先进的技术架构,以惊人的效率处理各种复杂任务,为我们的科技探索之路照亮前行方向。
如果你也想和我一样使用deepseek的话,你不妨试试 蓝耘智算平台进行deepseek的搭建操作。有了他,你的工作效率肯定会更上一层楼的
蓝耘智算平台注册链接:https://cloud.lanyun.net//#/registerPage?promoterCode=0131

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

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

相关文章

传输层协议TCP (上)

文章目录 前言TCP报文格式TCP连接管理连接建立与中止三次握手三次握手的状态变化为什么是三次握手 四次挥手四次挥手的状态变化FIN_WAIT_2 状态可能导致连接长时间不释放的问题TIME_WAIT状态作用 复位报文段非法连接请求其他异常情况 半打开连接同时握手同时关闭 参考资料 前言…

深度学习框架探秘|Keras:深度学习的魔法钥匙

一、引言:深度学习浪潮中的 Keras 前面的文章我们探秘了深度学习框架中的两大明星框架 —— TensorFlow 和 PyTorch 以及 两大框架的对比 在深度学习的众多框架中,还有一款框架备受开发者们的喜爱 —— Keras 。它就像是一位贴心的助手,为我…

2.11学习

misc buu-荷兰宽带泄露 下载附件得到了一个后缀为.bin的文件 是宽带数据文件,用RouterPassView工具进行查看。大多数现代路由器都可以让您备份一个文件路由器的配置文件,然后在需要的时候从文件中恢复配置。路由器的备份文件通常包含了像您的ISP的用户…

Python 调用 DeepSeek API 案例详细教程

本案例为以 Python 为例的调用 DeepSeek API 的小白入门级详细教程 步骤 先注册并登录 DeepSeek 官网:https://www.deepseek.com/ 手机号验证码注册或登录即可 创建 API KEY 注意保存,写代码时必须提供的 打开 Pycharm 创建工程 并安装 OpenAI 库编写代…

C++ Primer 函数基础

欢迎阅读我的 【CPrimer】专栏 专栏简介:本专栏主要面向C初学者,解释C的一些基本概念和基础语言特性,涉及C标准库的用法,面向对象特性,泛型特性高级用法。通过使用标准库中定义的抽象设施,使你更加适应高级…

【SVN基础】

软件:ToritoiseSVN 代码版本回退:回退到上一个版本 问题:SVN版本已经提交了版本1和版本2,现在发现不需要版本2的内容,需要回退到版本1然后继续开发。 如图SVN版本已经提交到了107版本,那么本地仓库也已经…

kron积计算mask类别矩阵

文章目录 1. 生成类别矩阵如下2. pytorch 代码3. 循环移动矩阵 1. 生成类别矩阵如下 2. pytorch 代码 import torch import torch.nn as nn import torch.nn.functional as Ftorch.set_printoptions(precision3, sci_modeFalse)if __name__ "__main__":run_code 0…

Stable Diffusion 安装教程(附安装包) 【SD三种安装方式,Win+Mac一篇文章讲明白】

“Stable Diffusion的门槛过高、不会安装?没关系,这篇文章教会你如何安装!” Stable Diffusion的安装部署其实并不困难,只需简单点击几下,几分钟就能安装好,不管是windows还是苹果mac电脑,关于…

网络安全用centos干嘛 网络安全需要学linux吗

网络安全为啥要学Linux系统,据不完全统计,Linux系统在数据中心操作系统上的份额高达70%。它一般运行于服务器和超级计算机上。 所以我们日常访问的网站后台和app后端都是部署在Linux服务器上的,如果你不会Linux系统操作,那么很多…

jupyter notebook中3种读图片的方法_与_图片翻转(上下翻转,左右翻转,上下左右翻转)

已有图片cat.jpg 相对于代码的位置,可以用./cat.jpg进行读取。 下面是3种读图片的方法。 1.python读图片-pillow 图片文件不适合用open去读取 用open读图片,易引发UnicodeDecodeError: gbk codec cant decode byte 0xff in position 0: illegal multib…

微软官方出品GPT大模型编排工具:7个开源项目

今天一起盘点下,12月份推荐的7个.Net开源项目(点击标题查看详情)。 1、一个浏览器自动化操作的.Net开源库 这是一个基于 Google 开源的 Node.js 库 Puppeteer 的 .NET 开源库,方便开发人员使用无头 Web 浏览器抓取 Web、检索 Ja…

机器视觉--Halcon变量的创建与赋值

一、引言 在机器视觉领域,Halcon 作为一款强大且功能丰富的软件库,为开发者提供了广泛的工具和算子来处理各种复杂的视觉任务。而变量作为程序中存储和操作数据的基本单元,在 Halcon 编程中起着至关重要的作用。正确地创建和赋值变量是编写高…

03【FreeRTO队列-如何获取任务信息与队列的动静态创建】

一.利用 vTaskList()以及 vTaskGetRunTimeStats()来获取任务的信息 1.现象与开启启用宏 freeRTOSConfig.h //必须启用 #define configUSE_TRACE_FACILITY 1 #define configGENERATE_RUN_TIME_STATS 1 #define configUSE_STATS_FORMATTING_FUNCTIONS…

GBD研究——美国州级地图(附资源)

美国州级别地图 地图源很多,随便下载。不过我试了两个资源,发现有的资源会漏掉阿拉斯加和夏威夷。 就剩大的这块佩奇 出现这样的问题,要么跟数据源有关,要么就是要掉地名来看,是不是没匹配上。 亲自试过&#xff0c…

【微服务学习一】springboot微服务项目构建以及nacos服务注册

参考链接 3. SpringCloud - 快速通关 springboot微服务项目构建 教程中使用的springboot版本是3.x,因此需要使用jdk17,并且idea也需要高版本,我这里使用的是IDEA2024。 环境准备好后我们就可以创建springboot项目,最外层的项目…

第39周:猫狗识别 2(Tensorflow实战第九周)

目录 前言 一、前期工作 1.1 设置GPU 1.2 导入数据 输出 二、数据预处理 2.1 加载数据 2.2 再次检查数据 2.3 配置数据集 2.4 可视化数据 三、构建VGG-16网络 3.1 VGG-16网络介绍 3.2 搭建VGG-16模型 四、编译 五、训练模型 5.1 上次程序的主要Bug 5.2 修改版…

DeepSeek 概述与本地化部署【详细流程】

目录 一、引言 1.1 背景介绍 1.2 本地化部署的优势 二、deepseek概述 2.1 功能特点 2.2 核心优势 三、本地部署流程 3.1 版本选择 3.2 部署过程 3.2.1 下载Ollama 3.2.2 安装Ollama 3.2.3 选择 r1 模型 3.2.4 选择版本 3.2.5 本地运行deepseek模型 3.3.6 查看…

jenkins war Windows安装

Windows安装Jenkins 需求1.下载jenkins.war2.编写快速运行脚本3.启动Jenkins4.Jenkins使用 需求 1.支持在Windows下便捷运行Jenkins; 2.支持自定义启动参数; 3.有快速运行的脚步样板。 1.下载jenkins.war Jenkins下载地址:https://get.j…

3D打印技术:如何让古老文物重获新生?

如何让古老文物在现代社会中焕发新生是一个重要议题。传统文物保护方法虽然在一定程度上能够延缓文物的损坏,但在文物修复、展示和传播方面仍存在诸多局限。科技发展进步,3D打印技术为古老文物的保护和传承提供了全新的解决方案。我们来探讨3D打印技术如…

Vue h函数到底是个啥?

h 到底是个啥? 对于了解或学习Vue高阶组件(HOC)的同学来说,h() 函数无疑是一个经常遇到的概念。 那么,这个h() 函数究竟如何使用呢,又在什么场景下适合使用呢? 一、h 是什么 看到这个函数你可…