【六一儿童节】的科技奇幻旅程:解锁【机器学习】与【人工智能】的无限创意

目录

一、机器学习与人工智能简介

二、六一儿童节的特殊意义

三、项目概述:智能绘画助手

四、技术栈和工具

五、数据准备

六、模型训练

1. 数据预处理

2. 构建和训练模型

七、智能绘画助手的实现

1. 搭建Flask应用

2. 客户端界面

八、扩展功能与优化

1. 数据增强

2. 增加更多类别

3. 提升模型性能

4. 增强用户交互体验

九、项目总结

十、未来展望

附录:完整代码

1. 数据处理和模型训练

2. Flask 后端

3. HTML 和 JavaScript 前端


每年的六一儿童节是孩子们期盼已久的节日,而随着科技的飞速发展,我们有机会利用前沿技术为孩子们带来更多的乐趣和知识。进入一个奇幻的科技世界,结合机器学习和人工智能技术,通过具体的项目实例,展示如何在六一儿童节为孩子们打造一个智能互动的学习和娱乐体验。

一、机器学习与人工智能简介

在开始我们的项目之前,先简单介绍一下机器学习和人工智能的基本概念。

机器学习是通过数据和算法,让计算机系统在没有明确编程的情况下自主学习和改进的技术。常见的机器学习任务包括分类、回归、聚类等。

人工智能(Artificial Intelligence, AI)是让计算机系统模拟人类智能的技术,包括感知、学习、推理和决策等能力。机器学习是实现人工智能的一种重要手段。

随着这些技术的发展,我们可以创造出各种智能应用,使生活变得更加便捷和有趣。而今天,我们将聚焦于如何利用这些技术为孩子们打造一个充满创意的六一儿童节。

二、六一儿童节的特殊意义

六一儿童节不仅是孩子们欢乐的节日,也是一个促进他们健康成长和全面发展的重要时刻。在这个节日里,家长和教育者们都希望能够通过各种活动激发孩子们的创造力、想象力以及对世界的好奇心。为了让这个节日更加特别,我们将探索如何结合机器学习和人工智能技术,为孩子们带来一个与众不同的六一儿童节体验。

三、项目概述:智能绘画助手

为了让孩子们在六一儿童节尽情发挥创意,我们将构建一个“智能绘画助手”应用。这个应用会利用机器学习和人工智能技术,根据孩子的简单线条或形状,自动生成复杂的图画,增加绘画的趣味性和互动性。

四、技术栈和工具

为了实现这个项目,我们将使用以下技术和工具:

  • Python:主要编程语言
  • TensorFlow/Keras:深度学习框架
  • OpenCV:计算机视觉库
  • Flask:Web框架,用于构建应用接口
  • HTML/CSS/JavaScript:前端开发技术

五、数据准备

智能绘画助手需要大量的训练数据来学习各种绘画风格和对象。我们将使用开源的绘画数据集,如Quick, Draw! 数据集,它包含了大量手绘的草图。

首先,我们需要下载并处理数据集:

import numpy as np
import pandas as pd
import os
import cv2
import matplotlib.pyplot as plt

# 下载 Quick, Draw! 数据集(此处省略具体下载过程)
# 假设数据已下载并解压到 'quick_draw_dataset/' 目录

data_dir = 'quick_draw_dataset/'
categories = ['cat', 'dog', 'car', 'tree']  # 示例类别

def load_data(data_dir, categories, max_items=5000):
    data = []
    for category in categories:
        path = os.path.join(data_dir, category + '.npy')
        drawings = np.load(path)[:max_items]
        for drawing in drawings:
            data.append([drawing, category])
    return data

# 加载数据
data = load_data(data_dir, categories)

# 可视化部分数据
plt.figure(figsize=(10, 5))
for i in range(8):
    plt.subplot(2, 4, i + 1)
    plt.imshow(data[i][0].reshape(28, 28), cmap='gray')
    plt.title(data[i][1])
    plt.axis('off')
plt.show()

六、模型训练

我们将使用卷积神经网络(CNN)来训练一个模型,该模型可以根据孩子的绘画线条预测并生成更复杂的图像。

1. 数据预处理

在训练模型之前,我们需要对数据进行预处理。我们将绘画数据归一化并进行标签编码。

import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
from tensorflow.keras.utils import to_categorical

# 数据预处理
def preprocess_data(data):
    X = np.array([item[0] for item in data]).reshape(-1, 28, 28, 1) / 255.0
    y = np.array([categories.index(item[1]) for item in data])
    y = to_categorical(y, num_classes=len(categories))
    return X, y

X, y = preprocess_data(data)

2. 构建和训练模型

接下来,我们将构建一个简单的卷积神经网络,并用预处理后的数据进行训练。

# 构建模型
model = Sequential([
    Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)),
    MaxPooling2D((2, 2)),
    Conv2D(64, (3, 3), activation='relu'),
    MaxPooling2D((2, 2)),
    Flatten(),
    Dense(128, activation='relu'),
    Dense(len(categories), activation='softmax')
])

model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

# 训练模型
model.fit(X, y, epochs=10, validation_split=0.2)

# 保存模型
model.save('drawing_model.h5')

七、智能绘画助手的实现

训练好模型后,我们将通过一个简单的Web应用来实现智能绘画助手的功能。

1. 搭建Flask应用

我们将使用Flask框架来构建后端服务,接受来自前端的绘画数据并返回预测结果。

from flask import Flask, request, jsonify
from tensorflow.keras.models import load_model
import numpy as np

app = Flask(__name__)
model = load_model('drawing_model.h5')

@app.route('/predict', methods=['POST'])
def predict():
    data = request.json['drawing']
    drawing = np.array(data).reshape(1, 28, 28, 1) / 255.0
    prediction = model.predict(drawing)
    category = categories[np.argmax(prediction)]
    return jsonify({'category': category})

if __name__ == '__main__':
    app.run(debug=True)

2. 客户端界面

我们将用HTML和JavaScript构建一个简单的前端界面,供孩子们绘画并与后端进行交互。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>智能绘画助手</title>
    <style>
        canvas { border: 1px solid black; }
    </style>
</head>
<body>
    <h1>智能绘画助手</h1>
    <canvas id="canvas" width="280" height="280"></canvas>
    <button id="clear">清除</button>
    <button id="predict">预测</button>
    <p id="result"></p>

    <script>
        const canvas = document.getElementById('canvas');
        const ctx = canvas.getContext('2d');
        let painting = false;

        canvas.addEventListener('mousedown', () => painting = true);
        canvas.addEventListener('mouseup', () => painting = false);
        canvas.addEventListener('mousemove', draw);

        function draw(event) {
            if (!painting) return;
            ctx.lineWidth = 10;
            ctx.lineCap = 'round';
            ctx.strokeStyle = 'black';
            ctx.lineTo(event.clientX - canvas.offsetLeft, event.clientY - canvas.offsetTop);
            ctx.stroke();
            ctx.beginPath();
            ctx.moveTo(event.clientX - canvas.offsetLeft, event.clientY - canvas.offsetTop);
        }

        document.getElementById('clear').addEventListener('click', () => {
            ctx.clearRect(0, 0, canvas.width, canvas.height);
            ctx.beginPath();
        });

        document.getElementById('predict').addEventListener('click', () => {
            const imgData = ctx.getImageData(0, 0, canvas.width, canvas.height);
            const data = [];
            for (let i = 0; i < imgData.data.length; i += 4) {
                data.push(imgData.data[i] / 255);
            }
            fetch('/predict', {
                method: 'POST',
                headers: { 'Content-Type': 'application/json' },
                body: JSON.stringify({ drawing: data })
            })
            .then(response => response.json())
            .then(result => {
                document.getElementById('result').textContent = '预测结果: ' + result.category;
            });
        });
    </script>
</body>
</html>

八、扩展功能与优化

为了提升智能绘画助手的实用性和趣味性,我们可以进一步扩展功能和优化性能。

1. 数据增强

通过数据增强技术,我们可以生成更多的训练数据,提升模型的泛化能力。这包括对图像进行旋转、平移、缩放和翻转等操作。

from tensorflow.keras.preprocessing.image import ImageDataGenerator

datagen = ImageDataGenerator(
    rotation_range=10,
    width_shift_range=0.1,
    height_shift_range=0.1,
    zoom_range=0.1,
    horizontal_flip=True
)

# 数据增强
datagen.fit(X)

# 使用增强数据训练模型
model.fit(datagen.flow(X, y, batch_size=32), epochs=10, validation_split=0.2)

2. 增加更多类别

我们可以添加更多的绘画类别,丰富孩子们的创作空间。只需更新数据集并重新训练模型。

categories = ['cat', 'dog', 'car', 'tree', 'house', 'flower', 'sun', 'fish']
# 重新加载数据并训练模型

3. 提升模型性能

使用更深的网络结构或其他先进的神经网络模型(如ResNet、EfficientNet),可以进一步提升模型的准确性。

from tensorflow.keras.applications import ResNet50

# 使用预训练的ResNet50模型
base_model = ResNet50(weights='imagenet', include_top=False, input_shape=(28, 28, 3))
model = Sequential([
    base_model,
    Flatten(),
    Dense(128, activation='relu'),
    Dense(len(categories), activation='softmax')
])

model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
model.fit(X, y, epochs=10, validation_split=0.2)

4. 增强用户交互体验

通过改进前端界面和交互逻辑,可以提升用户的绘画体验。例如,添加颜色选择、画笔大小调节和实时预览等功能。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>智能绘画助手</title>
    <style>
        canvas { border: 1px solid black; }
        #tools { margin-top: 10px; }
    </style>
</head>
<body>
    <h1>智能绘画助手</h1>
    <canvas id="canvas" width="280" height="280"></canvas>
    <div id="tools">
        <button id="clear">清除</button>
        <button id="predict">预测</button>
        <input type="color" id="color" value="#000000">
        <input type="range" id="size" min="1" max="20" value="10">
    </div>
    <p id="result"></p>

    <script>
        const canvas = document.getElementById('canvas');
        const ctx = canvas.getContext('2d');
        let painting = false;

        canvas.addEventListener('mousedown', () => painting = true);
        canvas.addEventListener('mouseup', () => painting = false);
        canvas.addEventListener('mousemove', draw);

        function draw(event) {
            if (!painting) return;
            ctx.lineWidth = document.getElementById('size').value;
            ctx.lineCap = 'round';
            ctx.strokeStyle = document.getElementById('color').value;
            ctx.lineTo(event.clientX - canvas.offsetLeft, event.clientY - canvas.offsetTop);
            ctx.stroke();
            ctx.beginPath();
            ctx.moveTo(event.clientX - canvas.offsetLeft, event.clientY - canvas.offsetTop);
        }

        document.getElementById('clear').addEventListener('click', () => {
            ctx.clearRect(0, 0, canvas.width, canvas.height);
            ctx.beginPath();
        });

        document.getElementById('predict').addEventListener('click', () => {
            const imgData = ctx.getImageData(0, 0, canvas.width, canvas.height);
            const data = [];
            for (let i = 0; i < imgData.data.length; i += 4) {
                data.push(imgData.data[i] / 255);
            }
            fetch('/predict', {
                method: 'POST',
                headers: { 'Content-Type': 'application/json' },
                body: JSON.stringify({ drawing: data })
            })
            .then(response => response.json())
            .then(result => {
                document.getElementById('result').textContent = '预测结果: ' + result.category;
            });
        });
    </script>
</body>
</html>

九、项目总结

通过本项目,我们展示了如何结合机器学习和人工智能技术,创建一个有趣且教育意义的应用,帮助孩子们在六一儿童节尽情发挥创意。整个过程涵盖了数据准备、模型训练、应用开发和部署,为读者提供了一个完整的实践案例。

十、未来展望

智能绘画助手只是人工智能在儿童教育中应用的一个小小示例。未来,我们可以探索更多的可能性,例如智能语音助手、个性化学习平台和增强现实(AR)教育应用等,利用前沿科技为孩子们提供更加丰富多彩的学习体验。

通过不断的创新和探索,我们期待科技能够在儿童的成长过程中发挥更大的作用,让每一个六一儿童节都变得更加特别和难忘。

附录:完整代码

1. 数据处理和模型训练

import numpy as np
import os
import matplotlib.pyplot as plt
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
from tensorflow.keras.utils import to_categorical
from tensorflow.keras.preprocessing.image import ImageDataGenerator

# 加载 Quick, Draw! 数据集
data_dir = 'quick_draw_dataset/'
categories = ['cat', 'dog', 'car', 'tree', 'house', 'flower', 'sun', 'fish']

def load_data(data_dir, categories, max_items=5000):
    data = []
    for category in categories:
        path = os.path.join(data_dir, category + '.npy')
        drawings = np.load(path)[:max_items]
        for drawing in drawings:
            data.append([drawing, category])
    return data

data = load_data(data_dir, categories)

# 数据预处理
def preprocess_data(data):
    X = np.array([item[0] for item in data]).reshape(-1, 28, 28, 1) / 255.0
    y = np.array([categories.index(item[1]) for item in data])
    y = to_categorical(y, num_classes=len(categories))
    return X, y

X, y = preprocess_data(data)

# 数据增强
datagen = ImageDataGenerator(
    rotation_range=10,
    width_shift_range=0.1,
    height_shift_range=0.1,
    zoom_range=0.1,
    horizontal_flip=True
)

datagen.fit(X)

# 构建和训练模型
model = Sequential([
    Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)),
    MaxPooling2D((2, 2)),
    Conv2D(64, (3, 3), activation='relu'),
    MaxPooling2D((2, 2)),
    Flatten(),
    Dense(128, activation='relu'),
    Dense(len(categories), activation='softmax')
])

model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

model.fit(datagen.flow(X, y, batch_size=32), epochs=10, validation_split=0.2)

# 保存模型
model.save('drawing_model.h5')

2. Flask 后端

from flask import Flask, request, jsonify
from tensorflow.keras.models import load_model
import numpy as np

app = Flask(__name__)
model = load_model('drawing_model.h5')

categories = ['cat', 'dog', 'car', 'tree', 'house', 'flower', 'sun', 'fish']

@app.route('/predict', methods=['POST'])
def predict():
    data = request.json['drawing']
    drawing = np.array(data).reshape(1, 28, 28, 1) / 255.0
    prediction = model.predict(drawing)
    category = categories[np.argmax(prediction)]
    return jsonify({'category': category})

if __name__ == '__main__':
    app.run(debug=True)

3. HTML 和 JavaScript 前端

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>智能绘画助手</title>
    <style>
        canvas { border: 1px solid black; }
        #tools { margin-top: 10px; }
    </style>
</head>
<body>
    <h1>智能绘画助手</h1>
    <canvas id="canvas" width="280" height="280"></canvas>
    <div id="tools">
        <button id="clear">清除</button>
        <button id="predict">预测</button>
        <input type="color" id="color" value="#000000">
        <input type="range" id="size" min="1" max="20" value="10">
    </div>
    <p id="result"></p>

    <script>
        const canvas = document.getElementById('canvas');
        const ctx = canvas.getContext('2d');
        let painting = false;

        canvas.addEventListener('mousedown', () => painting = true);
        canvas.addEventListener('mouseup', () => painting = false);
        canvas.addEventListener('mousemove', draw);

        function draw(event) {
            if (!painting) return;
            ctx.lineWidth = document.getElementById('size').value;
            ctx.lineCap = 'round';
            ctx.strokeStyle = document.getElementById('color').value;
            ctx.lineTo(event.clientX - canvas.offsetLeft, event.clientY - canvas.offsetTop);
            ctx.stroke();
            ctx.beginPath();
            ctx.moveTo(event.clientX - canvas.offsetLeft, event.clientY - canvas.offsetTop);
        }

        document.getElementById('clear').addEventListener('click', () => {
            ctx.clearRect(0, 0, canvas.width, canvas.height);
            ctx.beginPath();
        });

        document.getElementById('predict').addEventListener('click', () => {
            const imgData = ctx.getImageData(0, 0, canvas.width, canvas.height);
            const data = [];
            for (let i = 0; i < imgData.data.length; i += 4) {
                data.push(imgData.data[i] / 255);
            }
            fetch('/predict', {
                method: 'POST',
                headers: { 'Content-Type': 'application/json' },
                body: JSON.stringify({ drawing: data })
            })
            .then(response => response.json())
            .then(result => {
                document.getElementById('result').textContent = '预测结果: ' + result.category;
            });
        });
    </script>
</body>
</html>

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SQL面试题001--图文并茂解答连续登录问题

连续登录问题是经典问题&#xff0c;今天做下总结。首先对原数据进行处理成客户和日期是不重复的&#xff0c;且日期是 yyyy-MM-dd 格式&#xff0c;这样好使用日期相关的函数。 本文参考在文末&#xff0c;增加了图表&#xff0c;更加容易理解。 表&#xff1a;temp01_cust_…

从0开始制作微信小程序

目录 前言 正文 需要事先准备的 需要事先掌握的 什么是uniapp 平台应用的分类方式 什么是TypeScript 创建项目 项目文件作用 源码地址 尾声 &#x1f52d; Hi,I’m Pleasure1234&#x1f331; I’m currently learning Vue.js,SpringBoot,Computer Security and so on.&#x1…

[数据集][目标检测]旋风检测数据集VOC+YOLO格式157张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;159 标注数量(xml文件个数)&#xff1a;159 标注数量(txt文件个数)&#xff1a;159 标注类别…

代码随想录算法训练营第十一天| 20. 有效的括号、1047. 删除字符串中的所有相邻重复项、150. 逆波兰表达式求值

20. 有效的括号 题目链接&#xff1a;20. 有效的括号 文档讲解&#xff1a;代码随想录 状态&#xff1a;so easy 思路&#xff1a; 使用栈&#xff0c;如果是左括号就入栈&#xff0c;如果是右括号则判断是否和栈顶括号匹配&#xff0c;如果匹配就出栈&#xff0c;否则判断遍历…

ubuntu--Linux运行时格式

Linux运行时格式 \r 错误 用vim打开那个执行错误的 sh脚本文件 进入最后一行模式下 :set ff显示 fileformatdos 解决方法 : :set ffunix查看是否更改 : :set ff结果 : 保存退出即可 :x运行, 没有出错 * Author: cpu_code * Date: 2020-07-29 19:07:52 * LastEditTime: 2020…

MMPose-RTMO推理详解及部署实现(上)

目录 前言1. 概述1.1 MMPopse1.2 MMDeploy1.3 RTMO 2. 环境配置3. Demo测试4. ONNX导出初探5. ONNX导出代码浅析6. 剔除NMS7. 输出合并8. LayerNormalization算子导出9. 动态batch的实现10. 导出修改总结11. 拓展-MMPose中导出ONNX结语下载链接参考 前言 最近在 MMPose 上看到了…

Android加固多渠道打包和签名工具

简介 基于腾讯VasDolly最新版本3.0.6的图形界面衍生版本&#xff0c;同时增加了签名功能&#xff0c;旨在更好的帮助开发者构建多渠道包 使用说明 下载并解压最新工具包&#xff0c;找到Startup脚本并双击启动图形界面&#xff08;注意&#xff1a;需本地安装java环境&#…

json文件操作和异常处理

目录 按行读取文件readline() 读取大文件: json文件: json文件介绍: json的语法&#xff1a; 读取json文件: json文件写入: 异常&#xff1a; 捕获异常: 捕获指定类型的异常: 捕获未知类型的异常(使用最多): 异常捕获的完整结构: 异常传递: ​编辑抛出异常: 按行…

算法人生(18):从神经网络的“剪枝策略”看“怎么找回时间”

IT人的工作和生活难平衡这事&#xff0c;到底要怎么解决呢&#xff0c;让我们从神经网络的“剪枝策略”中找点灵感吧&#xff01; 剪枝策略是指训练和优化深度神经网络时采取的一种技术&#xff0c;从名字就知道&#xff0c;它就像修剪树木一样&#xff0c;去除不必要的枝叶&a…

云原生架构模式

本文主要介绍了云原生架构的主要设计模式&#xff0c;讨论了这些模式的优缺点及其适用场景&#xff0c;并探讨了在云计算环境中的应用和挑战。原文: Cloud-Native Architecture Patterns (Part 1)&#xff0c;Cloud-Native Architecture Patterns (Part 2) Bernard Hermant Uns…

微软如何打造数字零售力航母系列科普12 - 使用Microsoft Fabric将客户数据带入人工智能时代

【世界上充斥着数据&#xff0c;在过去的2年里&#xff0c;我们都看到了人工智能如何有潜力彻底改变我们的日常业务。人们对利用生成性人工智能体验的力量的需求越来越大&#xff0c;但这样做需要一个干净的数据庄园&#xff0c;而且可能会因为各种技术堆栈、分散的团队和无处不…

常见仪表盘指示灯的含义,这次够全了!

汽车是当前主要的交通工具之一&#xff0c;给人们的工作、生活提供了便利。大家在学会开车的同时&#xff0c;也得了解一些基本的汽车常识&#xff0c;可以及时的发现车辆的问题&#xff0c;并作出正确的判断&#xff0c;以此降低车辆的损耗和维修成本。其中最基本的&#xff0…

Redis-重定向

实验环境&#xff08;3主3从的Redis-Cluster&#xff09; 一、Redis重定向基础篇 1、MOVED重定向 Redis Custer 中&#xff0c;客户端可以向集群中任意节点发送请求。此时当前节点先对 Key 进行 CRC 16 计算&#xff0c;然后按 16384 取模确定 Slot 槽。确定该 Slot 槽所对应的…

C语言(字符、字符串函数)2

Hi~&#xff01;这里是奋斗的小羊&#xff0c;很荣幸各位能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎~~ &#x1f4a5;个人主页&#xff1a;小羊在奋斗 &#x1f4a5;所属专栏&#xff1a;C语言 本系列文章为个人学习笔记&#xff0c;在这里撰写成文一…

基于STC12C5A60S2系列1T 8051单片机的TM1638键盘数码管模块的数码管显示与TM1638芯片连接的按键的按键值应用

基于STC12C5A60S2系列1T 8051单片机的TM1638键盘数码管模块的数码管显示与TM1638芯片连接的按键的按键值应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍TM1638键盘…

⌈ 传知代码 ⌋ 命名实体识别

&#x1f49b;前情提要&#x1f49b; 本文是传知代码平台中的相关前沿知识与技术的分享~ 接下来我们即将进入一个全新的空间&#xff0c;对技术有一个全新的视角~ 本文所涉及所有资源均在传知代码平台可获取 以下的内容一定会让你对AI 赋能时代有一个颠覆性的认识哦&#x…

windows操作系统提权之服务提权实战rottenpotato

RottenPotato&#xff1a; 将服务帐户本地提权至SYSTEM load incognito list_tokens –u upload /home/kali/Desktop rottenpotato.exe . execute -Hc -f rottenpotato.exe impersonate_token "NT AUTHORITY\SYSTEM" load incognito 这条命令用于加载 Metasploi…

Pytorch线性回归

使用pytorch来重现线性模型的过程&#xff0c;构造神经网络module&#xff0c;构造损失函数loss&#xff0c;构造随机梯度下降的优化器sgd。 一 revise 首先确定我们的模型&#xff0c;我们希望完成的目标就是得到较小的loss&#xff0c;所以我们就需要一个标量值的loss。 那…

Linux入门攻坚——24、BIND编译安装、Telnet和OpenSSH

BIND编译安装 对于没有rpm包&#xff0c;需要源代码编译安装。 1、下载源代码&#xff1a;bind-9.12.2-P1.tar.gz&#xff0c;解压&#xff1a;tar -xf bind-9.12.2-P1.tar.gz 2、完善环境&#xff1a; 1&#xff09;增加用户组named&#xff1a;groupadd -g 53 named 2&…

Multipass虚拟机磁盘扩容

Multipass 是一个用于轻松创建和管理 Ubuntu 虚拟机的工具&#xff0c;特别适合开发环境。要使用 Multipass 扩大虚拟机的磁盘容量&#xff0c;你需要经历几个步骤&#xff0c;因为 Multipass 自身并不直接提供图形界面来调整磁盘大小。不过&#xff0c;你可以通过结合 Multipa…