卷积神经网络-奥特曼识别
  数据集
数据集 
四种奥特曼图片_数据集-飞桨AI Studio星河社区 (baidu.com)
中间的隐藏层 已经使用参数的空间
Conv2D卷积层
ReLU激活层
MaxPool2D最大池化层
AdaptiveAvgPool2D自适应的平均池化
Linear全链接层
Dropout放置过拟合,随机丢弃神经元
--------------------------------------------------------------------------------Layer (type)          Input Shape          Output Shape         Param #    
================================================================================Conv2D-1        [[50, 3, 227, 227]]   [50, 64, 227, 227]       1,792     ReLU-1        [[50, 64, 227, 227]]   [50, 64, 227, 227]         0       Conv2D-2       [[50, 64, 227, 227]]   [50, 64, 227, 227]      36,928     ReLU-2        [[50, 64, 227, 227]]   [50, 64, 227, 227]         0       MaxPool2D-1     [[50, 64, 227, 227]]   [50, 64, 113, 113]         0       Conv2D-3       [[50, 64, 113, 113]]  [50, 128, 113, 113]      73,856     ReLU-3        [[50, 128, 113, 113]] [50, 128, 113, 113]         0       Conv2D-4       [[50, 128, 113, 113]] [50, 128, 113, 113]      147,584    ReLU-4        [[50, 128, 113, 113]] [50, 128, 113, 113]         0       MaxPool2D-2     [[50, 128, 113, 113]]  [50, 128, 56, 56]          0       Conv2D-5        [[50, 128, 56, 56]]   [50, 256, 56, 56]       295,168    ReLU-5         [[50, 256, 56, 56]]   [50, 256, 56, 56]          0       Conv2D-6        [[50, 256, 56, 56]]   [50, 256, 56, 56]       590,080    ReLU-6         [[50, 256, 56, 56]]   [50, 256, 56, 56]          0       Conv2D-7        [[50, 256, 56, 56]]   [50, 256, 56, 56]       590,080    ReLU-7         [[50, 256, 56, 56]]   [50, 256, 56, 56]          0       MaxPool2D-3      [[50, 256, 56, 56]]   [50, 256, 28, 28]          0       Conv2D-8        [[50, 256, 28, 28]]   [50, 512, 28, 28]      1,180,160   ReLU-8         [[50, 512, 28, 28]]   [50, 512, 28, 28]          0       Conv2D-9        [[50, 512, 28, 28]]   [50, 512, 28, 28]      2,359,808   ReLU-9         [[50, 512, 28, 28]]   [50, 512, 28, 28]          0       Conv2D-10       [[50, 512, 28, 28]]   [50, 512, 28, 28]      2,359,808   ReLU-10        [[50, 512, 28, 28]]   [50, 512, 28, 28]          0       MaxPool2D-4      [[50, 512, 28, 28]]   [50, 512, 14, 14]          0       Conv2D-11       [[50, 512, 14, 14]]   [50, 512, 14, 14]      2,359,808   ReLU-11        [[50, 512, 14, 14]]   [50, 512, 14, 14]          0       Conv2D-12       [[50, 512, 14, 14]]   [50, 512, 14, 14]      2,359,808   ReLU-12        [[50, 512, 14, 14]]   [50, 512, 14, 14]          0       Conv2D-13       [[50, 512, 14, 14]]   [50, 512, 14, 14]      2,359,808   ReLU-13        [[50, 512, 14, 14]]   [50, 512, 14, 14]          0       MaxPool2D-5      [[50, 512, 14, 14]]    [50, 512, 7, 7]           0       
AdaptiveAvgPool2D-1   [[50, 512, 7, 7]]     [50, 512, 7, 7]           0       Linear-1           [[50, 25088]]          [50, 4096]        102,764,544  ReLU-14           [[50, 4096]]           [50, 4096]             0       Dropout-1          [[50, 4096]]           [50, 4096]             0       Linear-2           [[50, 4096]]           [50, 4096]        16,781,312   ReLU-15           [[50, 4096]]           [50, 4096]             0       Dropout-2          [[50, 4096]]           [50, 4096]             0       Linear-3           [[50, 4096]]            [50, 4]            16,388     
================================================================================
Total params: 134,276,932
Trainable params: 134,276,932
Non-trainable params: 0
--------------------------------------------------------------------------------
Input size (MB): 29.49
Forward/backward pass size (MB): 11120.24
Params size (MB): 512.23
Estimated Total Size (MB): 11661.95
--------------------------------------------------------------------------------如果paddle还没配置的话建议去网上搜一下,这里就不给链接了
用于训练模型的代码
import paddle
from paddle.io import Dataset,DataLoader
import os
from PIL import Image
import numpy as np
import paddle.vision.transforms as T
import matplotlib.pyplot as plt
from paddle.vision.datasets import DatasetFoldertransforms=T.Compose([T.Resize([227,227]),T.RandomRotation(degrees=[-10,10]),T.ColorJitter(0.4,0.4,0.4,0.4),T.ToTensor()])
dataset=DatasetFolder("aoteman",extensions=[".jpg"],transform=transforms)
#使用paddle.io.random_split切分训练集和测试集
from paddle.io import random_split
train_size=int(0.8*len(dataset))
test_size=len(dataset)-train_size
train_dataset,test_dataset=random_split(dataset=dataset,lengths=[train_size,test_size])
print(len(train_dataset),len(test_dataset))# plt.figure(figsize=[3,3])
# for idx,data in enumerate(train_dataset):
#     plt.subplot(3,3,idx+1)
#     im=data[0];label=data[1]
#     im=im.reshape([224,224,3])
#     plt.imshow(im)
#     if idx+1>=9:
#         break
# plt.show()print(dataset.class_to_idx)net=paddle.vision.models.vgg16(pretrained=True, num_classes=4)
paddle.summary(net,(50,3,227,227))#网络配置
lr=0.001
batch_size=50
#预训练模型优化器 Adam优化器
opt =paddle.optimizer.Adam(learning_rate=lr,parameters=net.classifier.parameters())
#损失函数
loss_fn=paddle.nn.CrossEntropyLoss()
#训练模式
net.train()
model=paddle.Model(net)
model.prepare(optimizer=opt,loss=loss_fn,metrics=paddle.metric.Accuracy())
import time
vsdl=paddle.callbacks.VisualDL(log_dir='vsdl/trainlog'+str(time.time()))
# model.load('mymodel/vgg_aoteman')
# res=model.predict()
model.fit(train_data=train_dataset,eval_data=test_dataset, batch_size=batch_size,epochs=1, verbose=1,shuffle=True,callbacks=vsdl)
model.save('mymodel/vgg_aoteman')用于预测模型的代码
import mathimport paddle
import paddle.vision.transforms as Tfrom PIL import Image
from paddle.vision.datasets import DatasetFolder
import numpy as nptransforms = T.Compose([T.Resize([227, 227]), T.ToTensor()])
# 使用paddle.io.random_split切分训练集和测试集img = Image.open('aoteman/predict_demo.jpg')#输入图片
img.show()
img = transforms(img)
img = img.unsqueeze(0)start_index = 0  # 开始切片的索引
end_index = 3    # 结束切片的索引
axes = [1]       # 要切片的轴(通道轴)
img = paddle.slice(img, axes=axes, starts=[start_index], ends=[end_index])net = paddle.vision.models.vgg16(pretrained=True, num_classes=4)
# 网络配置
lr = 0.001
batch_size = 50
# 预训练模型优化器 Adam优化器
opt = paddle.optimizer.Adam(learning_rate=lr, parameters=net.classifier.parameters())
# 损失函数
loss_fn = paddle.nn.CrossEntropyLoss()
# 训练模式
net.train()
model = paddle.Model(net)
model.prepare(optimizer=opt, loss=loss_fn, metrics=paddle.metric.Accuracy())
import timevsdl = paddle.callbacks.VisualDL(log_dir='vsdl/trainlog' + str(time.time()))
model.load('mymodel/vgg_aoteman')# print(img)
res = model.predict_batch(img)sum=0
maxx=-1000000
idx=0
for i in range(4):# sum+=math.exp(res[0][0][i])if res[0][0][i]>maxx:maxx=res[0][0][i]idx=i# print(res[0][0][i])
# print(res)
# print(math.exp(res[0][0][idx])/sum*100,end='%:   ')
if idx==0:print("迪迦")
elif idx==1:print('杰克')
elif idx==2:print('赛文')
else:print('泰罗')相关文章:
 
卷积神经网络-奥特曼识别
数据集 四种奥特曼图片_数据集-飞桨AI Studio星河社区 (baidu.com) 中间的隐藏层 已经使用参数的空间 Conv2D卷积层 ReLU激活层 MaxPool2D最大池化层 AdaptiveAvgPool2D自适应的平均池化 Linear全链接层 Dropout放置过拟合,随机丢弃神经元 -----------------…...
 
VB.net进行CAD二次开发(四)
netload不能弹出对话框,参考文献2 参考文献1说明了自定义菜单的问题,用的是cad的系统命令 只要加载了dll,自定义的命令与cad的命令同等地位。 这时,可以将自定义菜单的系统命令替换为自定义命令。 <CommandMethod("Add…...
 
3步轻松月入过万,APP广告新模式大揭秘!
万万没想到:用这个APP广告模式,月入过万竟然如此简单! 在移动应用开发的世界里,变现一直是一道难题。 许多APP开发者和产品经理为了提高收益、增强用户黏性,不断尝试各种策略。 然而,很多时候,…...
 
java项目之智能家居系统源码(springboot+vue+mysql)
风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的智能家居系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 基于Springboot的智能家居系…...
前端 JS 经典:读取文件原始内容
前言:有些时候在工程化开发中,我们需要读取文件里面的原始内容,比如,你有一个文件,后缀名为 .myfile,你需要拿到这个文件里的内容,该怎么处理呢。 在 vue2 中,因为 vue2 使用 vue-c…...
 
汇编概论和实践
一 汇编第一例 C代码 #include <stdio.h>int main() {printf("Hello, World!\n");return 0; }对应的汇编 .LC0:.string "Hello, World!"main:pushq %rbpmovq %rsp, %rbpleaq .LC0(%rip), %rdicall puts@PLTmovl $0, %eaxpopq %rbpret 二 CPU架构…...
 
铁塔基站用能监控能效解决方案
截至2023年10月,我国5G基站总数达321.5万个,占全国通信基站总数的28.1%。然而,随着5G基站数量的快速增长,基站的能耗问题也逐渐日益凸显,基站的用电给运营商带来了巨大的电费开支压力,降低5G基站的能耗成为…...
 
keepalived安装文档
目录 1、安装环境 2、安装keepalived 2.1 上传keepalived安装文件 2.2 解压 2.3 安装keepalived 2.4 加入开机启动: 2.5 配置日志文件 2.6 打开防火墙的通讯地址 1、安装环境 su - root yum -y install kernel-devel* yum -y install openssl-* yum -y …...
Spring Security
Spring Security spring提供的安全框架。主要提供了认证和授权的功能。简单梳理看看。 原理简单说就是Spring Security在基于Servlet应用中,其底层采用了Filter机制实现了对请求的认证,授权和漏洞防御等功能。 DelegatingFilterProxy 我们知道,Filter是Servlet规范里面…...
 
vue中大屏可视化适配所有屏幕大小
1. 外部盒子 .screenBox {width: 100vw;height: 100vh;background: url("/assets/images/bg.png") no-repeat;background-size: cover; }2.比例盒子 外层盒子css定义 .boxScale {width: 1920px;height: 1080px;background-color: orange;transform-origin: left top;…...
 
AI大模型探索之路-实战篇12: 构建互动式Agent智能数据分析平台:实现多轮对话控制
系列篇章💥 AI大模型探索之路-实战篇4:深入DB-GPT数据应用开发框架调研 AI大模型探索之路-实战篇5:探索Open Interpreter开放代码解释器调研 AI大模型探索之路-实战篇6:掌握Function Calling的详细流程 AI大模型探索之路-实战篇7…...
 
深入理解文件系统和日志分析
文件是存储在硬盘上的,硬盘上的最小存储单位是扇区,每个扇区的大小是512字节。 inode:存储元信息(包括文件的属性,权限,创建者,创建日期等等) block:块,连续…...
 
vue+vant移动端显示table表格加横向滚动条
vant移动端显示table效果,增加复选框,可以进行多选和全选。加横向滚动条,可以看全部内容。 <template><div class"app-container"><div class"nav_text" style"position: relative;"><…...
webserver服务器从零搭建到上线(八)|EpollPoller事件分发器类
文章目录 EpollPoller事件分发器类成员变量和成员函数解释私有的成员函数和成员变量成员函数 具体实现常量的作用构造函数和析构函数⭐️poll函数updateChannel函数removeChannel 函数removeChannel 和updateChannel⭐️fillActiveChannels 函数⭐️update 函数 总结 终于要开始…...
SD-WAN:企业网络转型的必然趋势
随着SD-WAN技术的不断进步和完善,越来越多的企业选择利用SD-WAN进行网络转型。根据IDC的研究,47%的企业已经成功迁移到SD-WAN,另有48%的公司计划在未来两个月内部署这一技术。 据Channel Futures报道,一位合作伙伴透露,…...
 
构建高效稳定的短视频直播系统架构
随着短视频直播的迅猛发展,构建一个高效稳定的短视频直播系统架构成为了互联网企业的重要挑战。本文将探讨如何构建高效稳定的短视频直播系统架构,以提供优质的用户体验和满足日益增长的用户需求。 ### 1. 短视频直播系统的背景 短视频直播近年来蓬勃发…...
 
python分别保存聚类分析结果+KeyError: ‘CustomerID‘报错
如何在完成聚类分析后按聚类编号保存数据并且带上原数据所属ID # 将每个聚类的数据保存到不同的文件中 for cluster_id in range(6): # 假设共有6个聚类cluster_data data[data[cluster] cluster_id]cluster_data_with_customer_id cluster_data.copy()cluster_data_with_…...
 
Sui与Atoma合作为开发者提供AI支持
AI初创公司Atoma宣布其即将推出的推理网络将与Sui集成,该网络将使开发者能够在他们的应用程序中使用AI工具。Atoma选择Sui作为其第一个区块链集成对象是由于Sui的可扩展性和性能。 尽管生成式AI在过去几年中引起了轰动,但它尚未进入许多消费者应用程序。…...
go-gin中session实现redis前缀和db库选择+单点登录
分别实现了redigo中自动加前缀和session中自动加前缀 等有空了整理一个demo放到github上,到时候求个小星星 在gin-contrib/sessions/redis库中redis的前缀是被封装起来了,所以自定义前缀没有内部方法在这里我们自己实现一下NewStoreWithDBPrefix方法配…...
 
python-双胞胎字符串
[问题描述]:给定两个字符串s和t,每次可以任意交换s的奇数位和偶数位的字符,即奇数位的字符可以与任意其它奇数位的字符交换,偶数位的字符同样也可以与任意偶数位的字符的字符交换,问能否在有限的次数的交换下使s变为t?…...
 
UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
浅谈 React Hooks
React Hooks 是 React 16.8 引入的一组 API,用于在函数组件中使用 state 和其他 React 特性(例如生命周期方法、context 等)。Hooks 通过简洁的函数接口,解决了状态与 UI 的高度解耦,通过函数式编程范式实现更灵活 Rea…...
 
19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...
 
(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...
 
【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果 
有限自动机到正规文法转换器v1.0
1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...
