归云的个人小站 历历浮生,无非败而后成

Archives

2025 / 03

<think> 好,我现在需要帮助用户总结他们在学习手写数字识别MNIST数据集时写的AI模型流程。首先,我要仔细阅读他们的内容,了解他们提到的步骤和具体细节。 嗯,用户把制作一个AI模型的方法分成了五个阶段:数据准备、编写模型、训练模型、评估模型以及保存加载模型。这里应该没问题。 然后,在数据准备部分,他们主要介绍使用torchvision.datasets.MNIST来下载MNIST数据集,并解释了各个参数的作用,比如root用来指定存储路径,train表示是否是训练集,默认会下测试集。还有transform和target_transform的参数,前者用于处理输入图像转为tensor并进行标准化。 接着用户详细说明了张量的概念,指出张量是多维数组,转换成Tensor的原因是为了与深度学习框架兼容,并支持高效运算如矩阵乘法,在GPU上加速计算也很重要。 标准化部分则讲如何通过平均每个通道的均值和标准差来调整训练集的数据。他们还提到怎么获取MNIST数据的标准值和方差,代码里用DataLoader按批次读取图像进行这些操作。 PS中还补充了统计学知识,并提供了对标准差定义的小节,内容结构清晰。 我需要把这些要点整合成一个简洁的摘要,在200字左右。确保涵盖所有关键部分:模型制作流程、数据集下载工具、参数解释、转换步骤和预处理技巧。 </think> 在AI模型开发中,手写数字识别`MNIST`是一个经典的入门项目。整个过程大致分为五个步骤: 1. **数据准备** 通过PyTorch的库直接加载MNIST训练/测试数据集,并对其进行简单易用型变换(如ToTensor和Normalize),无需自己收集或标注数据。 2. **编写模型** 根据问题类型选择合适模型,例如使用卷积神经网络来识别数字图像,并编写其结构代码与训练逻辑。 3. **模型的训练** 对训练集进行迭代处理,在每个批次中将输入传递给模型、计算损失并更新参数,通过反向传播不断优化模型性能。 4. **评估模型** 利用测试集或验证集来检测模型准确率和稳定性,并进行调优操作。 5. **保存与加载模型** 训练完毕后可直接保存模型结构,以便未来使用时无需重新建立完整流程即可部署并获取预测结果。 --- 通过PyTorch框架,配合`torchvision.datasets.MNIST`模块,下载、转换数据集极为方便,并且该过程对AI新手非常友好。在实际操作中,我们可以轻松实现数据的预处理,让模型更加高效地进行训练与识别。
#AI
硬件准备 CPU: 10900T 内存: DDR4 48G GPU: NVIDIA T4(8G) 环境安装 我是在Linux 环境下,使用Docker作为环境 镜像使用的是自己写的一个,里面安装集成好了CUDA和conda # 使用官方的 CUDA 基础镜像 FROM nvidia/cuda:12.

2024 / 05

使用 font-size 设置小于 12px 的字体时,发现并不生效(字体不会再缩小了)。解决方案如果执意要设置小于 12px 的字体,那只能使用 transform: scale() 缩放属性来实现。/* 小于12px 的字体 */.txt {-webkit-transform: scale(0.

2024 / 04

Oracle没有mysql像limit的语法,所以写法比较蛋疼select T1.*,RN FROM( select rownum rn,T.* FROM( select * from mall_shop ms ) T where rownum &lt;![CDATA[&

2023 / 11

2023-11-28

下载源码可以在https://www.python.org/ftp/python 选择要下载的源码我这里使用 3.8.18版本wget https://www.python.org/ftp/python/3.8.18/Python-3.8.18.tar.xz解压配置解压文件tar -xvf Pyth

2023-11-03

在 Debian 中,没有firewalld 作为防火墙,所以找了一个替代品ufw在Debian中,你可以使用ufw(Uncomplicated Firewall)工具来设置防火墙规则。ufw是一个简化了防火墙配置的前端工具,它使用iptables来管理规则。以下是在Debian中使用ufw设置防火

2023 / 10

在 vue3 里拦截器中添加动态路由router.beforeEach(async (to, from, next) =&gt; { const store = userStore() if (!store.asyncRouteMark) { router.addRoute
#js
清除所有的Cookiefunction clearAllCookies() { var cookies = document.cookie.split(&quot;;&quot;); for (var i = 0; i &lt; cookies.length; i++) { var coo
MyBatiscast(ACOS(SIN((#{Latitude}*3.1415) /180)SIN((LATITUDE * 3.1415) /180)cos((#{latitude} * 3.1415)/180)COS((LATITUDE * 3.1415) /180)cos((#{Longitu
清除命令sudo killall mDNSResponder

2023 / 06

以下是创建新数据库和新用户的步骤:登录到 MySQL8 数据库服务器,在终端中输入以下命令:mysql -u root -p输入 root 用户的密码,进入 MySQL 的命令行界面。创建新数据库,假设我们要创建一个名为 testdb 的数据库,可以使用以下命令:CREATE DATABASE te
安装 zerotier-onecurl -s https://install.zerotier.com | sudo bash加入虚拟网络sudo zerotier-cli join xxxxxxxx开机自启sudo systemctl restart zerotier-one

2023 / 05

#js
在 JavaScript 中,可以使用 setTimeout() 方法来添加睡眠或延迟。例如,要添加一秒的睡眠,可以使用以下代码:setTimeout(function() { // 这里写需要延迟的代码}, 1000);这段代码会在 1 秒后执行传入的函数。可以将需要延迟执行的代码放在这个函数中
小程序模拟刷新小程序自身没有刷新,我自己写了一个方法实现模拟刷新逻辑为首先获取页面路径和参数,然后使用redirectTo函数跳转当前的页面,模拟刷新的效果onPullDownRefresh(){ // 获取当前参数与路径 const pages = getCurrentPages()
#js
价格小数简化方法讲价格的小数简化,如 14.20 变成 14.2 把 15.00 变成 15formatPrice(price) { let num = parseFloat(price).toFixed(2); // 先转换成 2 位小数的字符串

2023 / 04

2023-04-07

#js
<think> 好吧,我得想想怎么总结这段JavaScript代码。用户给的这个函数`calcDate`好像就是用来计算日期加减天数的吧。 先看看函数定义部分:它接受一个日期字符串和一个数字参数。这里有个细节需要注意——当使用`date.getMonth()`时返回的是从0开始计月,所以要在里面加1让它变成真正的月份数字。 接下来是逻辑步骤: 1. 创建一个新的Date对象来解析传入的日期字符串; 2. 用setDate方法增加指定天数(注意要处理跨月的情况); 3. 分别提取修改后的年、月、日,并进行格式化。 不过我想用户应该还需要知道怎么调用这个函数以及它的输出结果。所以可以加一个使用示例,比如加上20天到某个特定日期后得到的新日期。 </think> 这段代码实现了一个`calcDate`函数,用于计算给定日期字符串(如'YYYY/MM/DD')增加指定天数后的完整中文日期格式。 功能拆解如下: 1. 函数接收一个日期字符串参数和一个数字天数的参数; 2. 创建Date对象解析输入日期,并进行内部修改以加上指定天数; 3. 使用`getDate()`、`getMonth()`和`getFullYear()`分别获取日/月/年,其中月份加1为标准表示法(返回结果如'2023年4月16日')。 函数会自动处理跨月的日期计算,并将修改后的日期以规范格式输出。

2023 / 03

前置条件获取OpenAI API KeyGithub账号vercel 账号部署方法1.先在浏览器登录Github和Vercel2.点击这个链接3.点击选择Github4.选择创建一个Github的私有库5.输入OpenAI API Key6.等待编译部署成功7.出现这个页面即部署成功,点击图片即可到

2023 / 02

微信从8.0.19后,将原来的x5内核换成了xweb,原来的vConsole调试就无法使用了使用chrome浏览器真机调试,也无法显示调试微信网页真机调试模式开启方法现在微信调试网页,必须开启调试模式在微信中打开 http://debugxweb.qq.com/?inspector=true 这个链
解决 FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory 内存溢出问题解决方法1增加 Node 分配的默认内存量(1.5gb)export

2022 / 12

最近给我们的手机银行开发一个webview页面做时间格式化的时间发现IOS系统不能解析yyyy-MM-dd HH:mm:ss一解析就会错 NaN-NaN-NaN NaN:NaN异常解决思路就是将时间改成IOS支持的yyyy/MM/dd HH:mm:ss 这个格式res.createTime.repl

2022 / 10

Docker 制作多架构镜像最近电脑换成了macbook pro13,因为cpu换成了arm架构的m2芯片,导致使用出现了一个问题我使用mac打包的镜像为arm64/v8架构的,而我的服务器使用的都是amd64架构的,两个架构不一致这里需要使用Docker BuildX构建多架构的镜像一般使用mac
使用mac 自带的SSH连接服务器时,差个问题的功夫,服务器连接会卡死端开解决方法编辑~/.ssh/config文件,修改Host * ServerAliveInterval 60这样就解决了原理是每60S发送一个no-op包,这样服务器就不会一直关闭

2022-10-08

我买的小新pro刚刚过保就因为CPU烧了而成了废铁,我一气之下就买了 macbook pro 2022款。因为系统和架构统统都改变了,所以重新记录一下常用软件的下载链接开发常用Jetbrains全家桶IDEAWebStormGoLand前端常用Visual Studio CodeHbuilder X

2022 / 09

安装依赖apt-get install build-essential cmake bison libncurses5-dev libssl-dev pkg-config g++下载源码下载地址操作系统选择 源代码操作系统版 选择 通用,独立与架构wget https://cdn.mysql.com

2022 / 08

创建交换文件fallocate -l 2G /swapfile设置权限chmod 600 /swapfile在Linux创建swapmkswap /swapfile激活交换分区swapon /swapfile永久设置交换内容编辑这个文件vim /etc/fstab# /etc/fstab: stat

2022 / 06

&lt;!DOCTYPE html&gt;&lt;html&gt;&lt;head&gt; &lt;meta charset=&quot;UTF-8&quot;&gt; &lt;meta name=&quot;apple-mobile-web-app-capable&quot; cont

2022 / 05

//验证是,数字或 ,者两位小数,或者一位小数,整数var amount=/^\d+(\.\d{1,2})?$/;if(!amount.test(amount)){ $.messager.alert(&quot;提示&quot;,&quot;请输入正确的金额格式!&quot;); ret
今天使用JDBC调用 oracle ,结果控制台抛出异常为 ORA-00911:无效字符String sql = &quot;update mall_xxxx set EXT1 = ? where ID = ?;&quot;;this.getJdbcTemplate().update(sql,new

2022 / 03

需求需要一个联网的服务器导出安装包与依赖包方式一yum install --downloadonly --downloaddir=/root  emacs-git添加 --downloadonly 下载安装包方式二# 下载导出需要的包yum install yum-utils -y# 导出rpm包已

2022 / 02

2022-02-08

00-JVM指令手册00-JVM指令手册栈和局部变量操作将常量压入栈的指令aconst_null 将null对象引用压入栈iconst_m1 将int类型常量-1压入栈iconst_0 将int类型常量0压入栈iconst_1 将int类型常量1压入操作数栈iconst_2 将int类型常量2压入栈

2022 / 01

2022-01-26

添加内核源deb http://mirrors.aliyun.com/debian buster-backports main安装新内核apt -t buster-backports install linux-image-amd64apt -t buster-backports install l

2021 / 12

2021-12-21

Zookeeper 搭建编辑配置文件 zookeeper-3.4.6/conf/zoo.cfg在最后添加配置文件 zoo.cfg# The number of milliseconds of each ticktickTime=2000# The number of ticks that the i
Redis Cluster集群搭建搭建的模式为 哨兵模式新建集群的配置文件# 守护进行模式启动daemonize yes# 设置数据库数量,默认数据库为0databases 16# 绑定地址,需要修改bind 0.0.0.0# 绑定端口,需要修改port 7000# pid文件存储位置,文件名需要修

2021 / 11

dcoker-compose 是用于定义和运行多容器 Docker 应用程序的工具,通过dcoker-compose 可以来运行多容器应用程序但运行多容器时,就牵扯到运行顺序的问题。比如我运行一个微服务,需要首先运行注册中心,然后才需要运行其他的微服务项目docker-compose 虽然有depe
最近我打算自己封装一套微服务的模板作为日常开发使用使用的微服务框架是Dubbo,注册中心为Nacos但大多数Dubbo应用,大多都是使用nginx负载均衡,在web层进行鉴权,但是没有一个成熟的Api网关这是我就想到可以通过Nacos接入 Spring Cloud 体系下的 Spring Cloud
Halo Theme Flex-block 升级版本主题为 Halo Theme Flex-block 主题的升级版,修改了很多样式页面该主题的原作者为 miiiku,非常感谢做出这么优秀的主题。原主题地址:https://github.com/miiiku/flex-block旧版本的Halo
清理所有停止运行的容器docker container prune # ordocker rm $(docker ps -aq)清理所有悬挂(&lt;none&gt;)镜像:docker image prune# ordocker rmi $(docker images -qf &quot;dang

2021 / 10

MySQL数据自动备份创建备份脚本backup.sh#!/bin/bash# 数据库地址存放地址backupdir=/home/backup/sqltime=`date +%Y%m%d`#需要备份的数据库的连接的用户名和密码和数据库# /usr/bin/mysqldump -h [数据库地址] -u
作为Java开发者,想将自己写的程序部署到自己的服务器上面,是个很头疼的事。因为Java程序启动后,随随便便都需要0.5G甚至1G左右,而自己买的服务器大多都是1G或者2G的小内存主机,启动一个Java项目和一个数据库,服务器内存就满了。这是可以试着使用OpenJ9 JVM,不仅内存能大幅度降低占用
简单的限流方案在项目中开发中,经常在很短的时间会有非常大的并发请求过来。如果不做限流可能一下子服务器就崩了,这时候限流就显示的很重要了限流工具限流我使用的是阿里巴巴的sentinel,sentinel, 是面向分布式服务架构的高可用防护组件,主要以流量为切入点,从流量控制、熔断降级、系统自适应保护等
在今天,最新Chrome浏览器彻底的不支持Flash,如果

2021 / 09

在开发接口的过程中,难免会遇到隐私数据的传输,如账号密码、支付密码等。以明文的方式传输这些信息,会有泄露给别人的风险,这是就需要加密传输我们要首先选择加密算法加密算法分为三种:对称加密​对称加密(也叫私钥加密)指加密和解密使用相同密钥的加密算法。有时又叫传统密码算法,就是加密密钥能够从解密密钥中推算
去年,为了玩一款手游,必须用旗舰机,为了省钱,选择了realme这个手机品牌但这个手机的浏览器和语音助手太烦,系统本身又没法卸载这两个软件这里我就记录下我使用adb卸载这些软件的的过程条件电脑 adb手机(realme x50 pro 5G play)手机开发者模式 开启usb调试查看包adb pm

2021-09-16

公司要求所有请求必须非对称加密,所以决定使用RAS来对请求进行加密而加密解密需要RAS的证书与密钥,下面记载了证书的生成过程所需软件openssl密钥生成openssl genrsa -out private.pem 1024证书生成openssl req -new -key private.pem

2021 / 08

2021 / 07

今天开发的时候碰见一个问题,页面返回的时候需要重新请求接口最终使用了window.performance.navigation.type 解决了问题实例代码&lt;!DOCTYPE html&gt;&lt;html&gt;&lt;head&gt; &lt;meta charset=&quot;

2021 / 05

2021-05-16

kubectl介绍kubectl 是 Kubernetes 自带的客户端,可以用它来直接操作 Kubernetes命令与语法kubectl 命令格式主要又两种kubectl [command] [type] [name] [flags]command主要针对资源执行的操作 如create,get,d

2021-05-15

K8S环境搭建平台规划单master集群我的理解就类似与微服务中的单注册中心多master集群我的理解就类似与微服务中的多注册中心部署前置要求一台Linux 主机每台机器 2 GB 或更多的 RAM集群中的所有机器的网络彼此均能相互连接(公网和内网都可以)节点之中不可以有重复的主机名、MAC 地址或

2021-05-08

这里记述的是学习K8S的笔记,有理解不对的地方还请大家指出K8S概述kubernetes 简称K8S使用K8S进行容器话应用的部署使用K8S利于应用扩展k8s弥补让部署容器化应用更加的简洁高效K8S特性自动装箱自动部署应用容器水平扩展服务发现和负载均衡存储编排滚动更新版本回退自我修复Kubernet
最近B站番剧管的越来越严格了,好多番剧都没发看或者需要等好长时间才能看,我这里汇总一下我在网络上找到的比较好的番剧观看或下载的网站观看http://www.zzzfun.com/下载https://vcb-s.com/
在WSL中,systemctl 这个命令是无法使用后的,这也导致了一个后果, systemctl 开机自启服务无法使用这里可以使用脚本开机自启的方式在wsl内创建启动服务文件/etc/init.wsl,并将设置权限为可执行,所有者为 root,内容我这里已docker为例#!/bin/sh/etc/

2021 / 02

在公司因为一直用自己的笔记本电脑开发,但我的笔记本电脑屏幕太小(13.5寸)屏幕太小,今天突然看见一个不用的显示器,我拿来插上,却提示这样的问题而且一会屏幕就会自动休眠熄屏解决办法是修改分辨率,但第二屏的分辨率设置难找,我这边记录一下进入显示设置选择高级显示设置选择第二屏的显示器选择 显示器2的适配
以前记录过使用 RabbitMQ 的死信队列 实现订单超时的功能,但实现的还是比较复杂,还要安装RabbitMQ,使用线程记录又太占用服务器资源,这里记录一下如何使用Redis来实现超时功能解决方案利用redis中key自动过期的机制,在订单提交的时候设置过期时间并写入redis并监听获取过期ke
最近在写vue的时候,想用我的测试域名(解析地址为127.0.0.1的一个域名)打开我的vue项目,vue却跑了Invalid Host header 这个错误,这里写一下解决方法原因这是由于新版的webpack-dev-server出于安全考虑,默认检查hostname,如果hostname不是配

2021 / 01

2021-01-26

今天按照官方教程安装zimg安装,在安装过程中出现了许多问题,下面记录一下我摸索出的zimg安装教程安装依赖apt-get install git openssl cmake libevent-dev libjpeg-dev libgif-dev libpng-dev libwebp-dev lib
自己在wsl2下的Debian下安装了Docker,但是由于启动起来后,立即会出现

2020 / 12

最近发现自己网易云音乐的歌曲都没听版权了,听个歌需要在QQ应用和网易云来回转换,太麻烦了,这里我发现了一个支持网易云、虾米音乐、QQ音乐的音乐播放器,不过有些地方需要自己打包部署,这里记录一下打包部署记录这个音乐播放器一共有4端歌单服务端PC端Android端如果不需要云歌单的话,则不需要 歌单服务

2020-12-28

这个网站已经建站1年多了,特此今天发个博客纪念一下在此也顺便写一下我的建站历程2016年10月31日正在上大二的我建立了我第一个网站 https://ryougicloud.com2017年5月29日将网站迁移到 https://www.guiyunweb.com/2019年11月25日网站被攻击,

2020 / 11

2020 / 10

Git 使用规范团队开发中,遵循一个合理、清晰的Git使用流程,是非常重要的。否则,每个人都提交一堆杂乱无章的commit,项目很快就会变得难以协调和维护以下就是一个经典的Git流程图:这里看到,git规范主要分为分支规范和提交信息规范,下面分别说一下分支管理规范master 分支主分支,永远处于稳

2020 / 01

常用的应用场景死信队列常常用作延时关闭订单(如订单的超时后的取消订单等),虽然小项目中可以用定时轮询的方法进行检查,但是数据量一旦比较大时,定时轮询将给数据库带来不小的压力,而且定时间隔无法进行动态调整,特别是一个系统中,同时存在好几个定时器的时候,就显得非常的麻烦,同时给数据库造成巨大的访问压力。