Keras实现AlexNet(论文复现【1】)

tensorflow对应的python版本_tensorflow + python + keras 版本对应关系 TensorFlow 2.2tensorflow-2.2TensorFlow 2.2.0 + Keras 2.3.1 on Python 3.7.TensorFlow 2.1tensorflow-2.1TensorFlow 2.1.0 + Keras 2.3.1 on Python 3.6.TensorFlow 2.0tensorflow-2.0TensorFlow 2.0.0 + Keras 2... 阅读详情


1.阅读论文

AlexNet论文地址


  • 论文作者的目的是什么或实现了什么?

较于传统的机器学习方法,在面对数量大,类别更且分辨率高的数据集时,我们需要一个更深更宽的模型。(To learn about thousands of objects from millions of images, we need a model with a large learning capacity.)


  • 新方法的关键点是什么?

1.Relu激活函数(同时期另外提出的 f ( x ) = ∣ t a n h ( x ) ∣ f(x) = |tanh(x)| f(x)=∣tanh(x)∣效果对比)
2.当时期下的多GPU训练(当时的硬件条件有限)
3.LRN(Local Response Normalization)方法
LRN
4.Overlapping Pooling(指kernel小于image size的Pooling)
5.Reducing Overfitting(1.Data Augmentation(数据增强)2.Dropout方法)


  • 还有哪些这方面的研究?
    有很多。

  • 模型的结构概览
    在这里插入图片描述

2.模型概览
  • 模型的组成部分
COMPONENTTYPE
Convolution(卷积)Convolutions
Grouped Convolution(分组卷积)Convolutions
Dense Connections(全连接)Feedforward Networks
DropoutRegularization
Local Response Normalization(局部响应归一化)Normalization
Maxpooling(最大池化)Pooling Operations
ReluActivation Functions
SoftmaxOutput Functions

3.模型细节
  • Local Response Normalization(局部响应归一化)

1.在Keras中可以直接将tf.nn.local_response_normalization封装成Layer进行调用,完成模型构建,但不懂其原理。
2.查阅资料【写得真棒!】


开始理解模式!

在AlexNet论文中给出的公式如下所示【写得是啥?】
在这里插入图片描述
为什么要Normalization?

Normalization是为了限制无界激活函数的输出。 如ReLU,ELU等等。

什么是Local Response Normalization?

LRN受Lateral inhibition所启发,Lateral inhibition指的是神经生物学中强烈兴奋神经元会抑制其邻近神经元表达的一种现象:“这会导致局部最大值形式的峰值出现,从而在该区域产生对比度并增加感官知觉。”(我的理解是,地主出现在江湖,以其强大开始镇压周围百姓,抢夺金钱,时代更替,要改变过去的现象,开始斗地主,因为地主剥削百姓,其臭名昭著与平凡的百姓成鲜明对比,人民军队一下就发现了地主。)

比较正规的解释:

LRN is a non-trainable layer that square-normalizes the pixel values in a feature map in a within a local neighborhood.(LRN是不可训练的图层,用于对局部邻域内的特征图中的像素值进行平方归一化。)

Local Response Normalization有两种

按照当前像素点,可以把LRN分为两种:

在这里插入图片描述

1.Inter-Channel LRN(通道间LRN)

顾名思义,在Inter-Channel LRN中,定义的邻居,是以通道方向来划分,继续往下看。

在这里插入图片描述
计算的公式如上图所示,其中:

  • i i i指得是,第 i i i个kernel
  • a x , y a_{x,y} ax,y​, b x , y b_{x,y} bx,y​,分别指归一化前后 ( x , y ) (x,y) (x,y)点处的像素值
  • n n n,指的是要计算时与"邻近点"的距离
  • N N N,是通道的总数
  • k k k,常数,避免分母为0的情况出现
  • α α α,归一化常数
  • β β β,对比常数

综上,超参数有 ( k , α , β , n ) (k,α,β,n) (k,α,β,n),当其取值为 ( 0 , 1 , 1 N ) (0,1,1N) (0,1,1N)时,即是Standard Normalization,在上示图中第一行,可知其 n = 2 n=2 n=2, N = 4 N=4 N=4。

举个栗子:
在这里插入图片描述

在上图中,不同颜色泛指不同的通道,根据上述可知, N = 4 N=4 N=4;

我们对超参数取值为 ( k , α , β , n ) = ( 0 , 1 , 1 , 2 ) (k,α,β,n)=(0,1,1,2) (k,α,β,n)=(0,1,1,2),其中:

  • n = 2 n=2 n=2指的是,在计算位置 ( i , x , y ) (i,x,y) (i,x,y)的归一化结果值时,我们要相应考虑它的上一个 f i l t e r filter filter和下一个 f i l t e r filter filter在同一位置的值,即 ( i − 1 , x , y ) (i-1,x,y) (i−1,x,y)和 ( i + 1 , x , y ) (i+1,x,y) (i+1,x,y);
  • 在上图中的, ( i , x , y ) = ( 0 , 0 , 0 ) (i,x,y)=(0,0,0) (i,x,y)=(0,0,0)处,我们可得其下一个 f i l t e r filter filter为 ( i + 1 , x , y ) = ( 1 , 0 , 0 ) (i+1,x,y)=(1,0,0) (i+1,x,y)=(1,0,0)的像素值为1,上一个 f i l t e r filter filter不存在,所以通过公式:

b 0 , 0 1 = a 0 , 0 1 ∑ j = m a x ( 0 , 0 ) m i n ( 3 , 2 ) ( a 0 , 0 j ) 2 = 0.5 b^{1}_{0,0}=\frac{a^{1}_{0,0}}{\sum^{min(3,2)}_{j=max(0,0)}(a^{j}_{0,0})^2}=0.5 b0,01​=∑j=max(0,0)min(3,2)​(a0,0j​)2a0,01​​=0.5

以此类推,计算其它的像素值。

2.Intra-Channel LRN(通道内LRN)

此时的计算公式应该是这样的:

在这里插入图片描述

  • ( W , H ) (W,H) (W,H)指的是,在当前Feature Map的宽度与高度,如下图所示的 ( W , H ) = ( 5 , 5 ) (W,H)=(5,5) (W,H)=(5,5)
  • 其计算的步骤与通道间LRN计算的方式一致;
    在这里插入图片描述
    比较

通道间LRN与通道内LRN的最大区别,便在于其定义的“邻居”区别,在通道间其对比的坐标点应为 ( x , y , c ) (x,y,c) (x,y,c)其中的 c c c指的是通道,通道内LRN对比坐标点应为 ( x , y ) (x,y) (x,y),前者是3D内的归一化,后者是2D内的归一化。

在reddit上的提问与回答
Tensorflow的官方实现接口


  • Dropout
  • Grouped Convolution(分组卷积)

AlexNet里面使用的初衷是因为单GPU的硬件资源不够,但在后续的许多模型借鉴其思想:”使用一组​​卷积,然后每层多个内核,得到每层多个通道输出,再进行整合。“
诸如ResNeXt模型等中也表明,能通过它来提高准确性。

To do list:
Dropout


4.数据集的准备
  • 准备数据集

1.Hackathon Blossom(102种花分类)
链接:https://pan.baidu.com/s/1ZPeKrPLR2_81qgi012DgEg
提取码:dk96
2.104 Flowers Garden of Eden(104种花分类)
链接:https://pan.baidu.com/s/1VIEVF3-dMOGiFPyl4hsxgA
提取码:kdur
3…后续添加


5.模型结构图表

细节表

operationinputfilter(W,H,C,N,S)output
Conv1(224,224,3)(11,11,3,96,4)(55,55,96)
LRN(55,55,96)None(55,55,96)
MaxPooling(55,55,96)None(27,27,96)
Conv2(27,27,96)(5,5,96,256)(27,27,256)
LRN(27,27,256)None(27,27,256)
MaxPooling(27,27,256)None(13,13,256)
Conv3(13,13,256)(3,3,256,384)(13,13,384)
Conv4(13,13,384)(3,3,384,384)(13,13,384)
Conv5(13,13,384)(3,3,384,256)(13,13,256)
MaxPooling(13,13,256)None(6,6,256)
Dense( 6 ∗ 6 ∗ 256 6*6*256 6∗6∗256)None(4096,)
Dropout
Dense(4096,)None(4096,)
Dropout
Dense(4096,)None(1000,)

结构图

Model: "AlexNet"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
Input (InputLayer)           [(None, 224, 224, 3)]     0         
_________________________________________________________________
zero_padding2d (ZeroPadding2 (None, 227, 227, 3)       0         
_________________________________________________________________
Conv_1 (Conv2D)              (None, 55, 55, 96)        34944     
_________________________________________________________________
Lrn_1 (Lambda)               (None, 55, 55, 96)        0         
_________________________________________________________________
activation (Activation)      (None, 55, 55, 96)        0         
_________________________________________________________________
Maxpool_1 (MaxPooling2D)     (None, 27, 27, 96)        0         
_________________________________________________________________
Conv_2 (Conv2D)              (None, 27, 27, 256)       614656    
_________________________________________________________________
Lrn_2 (Lambda)               (None, 27, 27, 256)       0         
_________________________________________________________________
activation_1 (Activation)    (None, 27, 27, 256)       0         
_________________________________________________________________
Maxpool_2 (MaxPooling2D)     (None, 13, 13, 256)       0         
_________________________________________________________________
Conv_3_1 (Conv2D)            (None, 13, 13, 384)       885120    
_________________________________________________________________
Conv_3_2 (Conv2D)            (None, 13, 13, 384)       1327488   
_________________________________________________________________
Conv_3_3 (Conv2D)            (None, 13, 13, 256)       884992    
_________________________________________________________________
Maxpool_3 (MaxPooling2D)     (None, 6, 6, 256)         0         
_________________________________________________________________
Flt_1 (Flatten)              (None, 9216)              0         
_________________________________________________________________
fc_1 (Dense)                 (None, 4096)              37752832  
_________________________________________________________________
drop_1 (Dropout)             (None, 4096)              0         
_________________________________________________________________
fc_2 (Dense)                 (None, 4096)              16781312  
_________________________________________________________________
drop_2 (Dropout)             (None, 4096)              0         
_________________________________________________________________
Output (Dense)               (None, 102)               417894    
=================================================================
Total params: 58,699,238
Trainable params: 58,699,238
Non-trainable params: 0
_________________________________________________________________

在这里插入图片描述


6.代码实现
import tensorflow as tf
from tensorflow import keras
import os
import shutil
from tensorflow.keras.layers import Conv2D, Lambda, MaxPool2D, Flatten, Dense, Dropout, Activation, ZeroPadding2D, Input
from tensorflow.keras.utils import plot_model
from tensorflow.keras import optimizers, losses, initializers

def AlexNet(input_shape, num_classes):
    inputs = Input(input_shape, name="Input")
    x = ZeroPadding2D(((3, 0), (3, 0)))(inputs)
    x = Conv2D(96,
               (11, 11),
               4,
               kernel_initializer=initializers.RandomNormal(stddev=0.01),
               name="Conv_1")(x)
    x = Lambda(tf.nn.local_response_normalization, name="Lrn_1")(x)
    x = Activation(activation="relu")(x)
    x = MaxPool2D(name="Maxpool_1")(x)

    x = Conv2D(256,
               (5, 5),
               kernel_initializer=initializers.RandomNormal(stddev=0.01),
               padding="SAME",
               name="Conv_2")(x)
    x = Lambda(tf.nn.local_response_normalization, name="Lrn_2")(x)
    x = Activation(activation="relu")(x)
    x = MaxPool2D(name="Maxpool_2")(x)

    x = Conv2D(384,
               (3, 3),
               padding="Same",
               kernel_initializer=initializers.RandomNormal(stddev=0.01),
               name="Conv_3_1")(x)
    x = Conv2D(384,
               (3, 3),
               padding="Same",
               kernel_initializer=initializers.RandomNormal(stddev=0.01),
               name="Conv_3_2")(x)
    x = Conv2D(256,
               (3, 3),
               activation="relu",
               padding="Same",
               kernel_initializer=initializers.RandomNormal(stddev=0.01),
               name="Conv_3_3")(x)
    x = MaxPool2D(name="Maxpool_3")(x)

    x = Flatten(name="Flt_1")(x)
    x = Dense(4096,
              activation="relu",
              kernel_initializer=initializers.RandomNormal(stddev=0.01),
              name="fc_1")(x)
    x = Dropout(0.5, name="drop_1")(x)
    x = Dense(4096,
              activation="relu",
              kernel_initializer=initializers.RandomNormal(stddev=0.01),
              name="fc_2")(x)
    x = Dropout(0.5, name="drop_2")(x)
    output = keras.layers.Dense(num_classes, activation="softmax", name="Output")(x)
    m = keras.Model(inputs, output, name="AlexNet")
    m.summary()
    return m

if __name__ == '__main__':
    # Pre-training
    saved_dir = "data"
    if os.path.isdir(saved_dir):
        shutil.rmtree(saved_dir)
        os.makedirs(saved_dir)
    else:
        os.makedirs(saved_dir)
    # Prepare the data set
    base_path = r"D:\keras_dataset\Hackathon Blossom\flower_data"

    train_datagen = keras.preprocessing.image.ImageDataGenerator(rescale=1. / 255
                                                                 )
    valid_datagen = keras.preprocessing.image.ImageDataGenerator(rescale=1. / 255)

    train_generator = train_datagen.flow_from_directory(
        os.path.join(base_path, "train"),
        target_size=(224, 224),
        batch_size=32,
        class_mode="categorical",
        save_prefix="train",
        save_to_dir="data"
    )
    valid_generator = valid_datagen.flow_from_directory(
        os.path.join(base_path, "valid"),
        target_size=(224, 224),
        batch_size=32,
        class_mode="categorical",
        save_prefix="valid",
        save_to_dir="data"
    )

    input_shape = (224, 224, 3)
    num_classes = 102

    model = AlexNet(input_shape, num_classes)
    plot_model(model)

    model.compile(
        # optimizer=optimizers.SGD(momentum=0.9),
        optimizer=optimizers.Adam(1e-3),
        loss=losses.categorical_crossentropy,
        metrics=["acc"]
    )

    model.fit(
        train_generator,
        steps_per_epoch=int(6552 / 128),
        epochs=100,
        validation_data=valid_generator,
        validation_steps=int(818 / 128)
    )


ImageNet Classification with Deep Convolutional Neural Network 论文笔记与复现(AlexNet Colab+Keras TB可视化)) 本文用于记录阅读论文ImageNet Classification with Deep Convolutional Neural Networks中总结有价值的点。 文章目录0 Abstract1 Introduction2 The Dataset3 The Architecture3.1 ReLU Nonlinearity3.2 Training on Multiple GPUs 0 Abstr... 阅读详情

相关推荐

用keras复现AlexNet

首先,我们用keras复现一下AlexNet的模型结构: from keras.models import Sequential from keras.layers import Input,Dense,Conv2D,MaxPooling2D,UpSampling2D,Dropout,Flatten from keras.layers import Dropout model = Sequent...

qq_41078023的博客 540

AlexNet分类-----训练自己的数据

本文重在将AlexNet进行工程化实现,使用自己的数据进行训练,完成一个三分类的任务。 训练模型代码如下所示: # -*- coding: utf-8 -*- """ Created on Thu May 30 16:22:42 2019 @author: 666 """ import os, shutil, random, glob import cv2 import num...

bi_diu1368的专栏 4305

常用的几种CNN网络结构github代码与论文汇总——keras

常用的几种CNN网络(AlexNet,GoogleNet,VGG,ResNet,DenseNet,inceptionV4)适合初学者 Keras安装和配置指南(Linux/Windows)     https://keras-cn.readthedocs.io/en/latest/for_beginners/keras_linux/     https://keras-cn.readthedo...

u012374174的专栏 5048

【深度学习经典网络架构—2】:AlexNet(附Keras实现)

目录一、网络简介二、网络创新点三、网络结构3.1 网络立体图结构3.2 网络平面图结构 一、网络简介 我们知道LeNet是第一个经典的卷积神经网络,但第一个走进大家视线的是AlexNet! AlexNet是由Alex Krizhevsky、Ilya Sutskever和Geoffrey E. Hinton三人提出的,文章发表于2012年,AlexNet网络拿到了ImageNet LSVRC-2010比赛的冠军(ImageNet LSVRC-2010比赛要求参赛者在具有1.2 million的高分辨率图像数据

王乐予的博客 7363

Kera实现AlexNet模型(简易版)

前言 为了掌握更好地掌握深度学习的模型,同时也为了加强一下keras的学习,所以简略复现一下AlexNet。之后还会用tensorflow复现,目前只是想从大体上掌握一下。 论文地址:ImageNet Classification with Deep Convolutional Neural Networks 模型结构 感觉这样的图会更容易看清楚一点,因为作者的论文发表的时候GPU的计算力还很低...

UnknownPlayer的博客 518

Keras CIFAR-10图像分类 GoogleNet 篇

GoogLeNet在2014年由Google团队提出(与VGG网络同年,注意GoogLeNet中的L大写是为了致敬LeNet),斩获当年ImageNet竞赛中Classification Task (分类任务) 第一名。原论文名称是《Going deeper with convolutions》,下面是网络结构图。 Inception v1网络是一个精心设计的22层卷积网络,并提出了具有良好局部特征结构Inception模块,即对特征并行地执行多个大小不同的卷积运算与池化,最后再拼接到一起。由于1×1、3×

风信子的猫Redamancy的快乐星球 1454

BottomPopup底部弹出8大自定义属性速查:高度、圆角、动画时长与遮罩透明度全解析

做 iOS 底部弹窗(Bottom Sheet)时,最常被问到的就是:怎么改高度、怎么调动画时长、遮罩透明度在哪里设。开源库 BottomPopup 用 8 个可重写属性,把底部弹出层的样式和交互全部开放给你,只需几行代码就能精准控制。 ## 先看懂:BottomPopup 是什么 BottomPopup 为任意 View Controller 提供一种**底部弹出式呈现风格**——内容从屏幕

gitblog_00986的博客 427

TensorFlow不同版本对应的Python版本(解决版本不相容的问题)

Python与TensorFlow版本的对应关系:CPUGPU建议 CPU GPU 建议 建议您在 Aanaconda 中创建相应的 TensorFlow 开发环境,分类管理,避免 1.0,2.0 之间来回卸载重装的不必要麻烦。 请参考:Tensorflow 2.0 最新版(2.4.1) 安装教程 中的相关内容。 ...

全网粉丝30W+,优快云、稀土掘金人工智能领域签约作者,人工智能、大模型、Python 爬虫,商务合作,请私信沟通。 1万+

经典神经网络——AlexNet模型论文详解及代码复现

Alexnet共有8层结构,前5层为卷积层,后三层为全连接层。

YuZhou的博客 2064

基于Python与Keras的AlexNet花卉分类识别系统实战

深度学习在图像分类领域的应用日益广泛,卷积神经网络(CNN)通过多层特征提取实现高精度识别,是计算机视觉的基础技术。相比MNIST等简单数据集,花卉分类任务包含更多类间差异与复杂背景,能更好地检验模型性能。Python结合Keras框架为复现经典网络结构提供了高效路径。AlexNet作为2012年ImageNet冠军模型,其结构清晰、参数可解释,适合作为图像分类项目的起步。从环境搭建到数据预处理,再从模型训练到调参优化,完整的工程流程可帮助初学者快速掌握深度学习项目实践。基于Python的AlexNet花卉

weixin_33708633的博客 304

Keras复现LeNet-5与AlexNet坑洼检测二分类实战

卷积神经网络(CNN)是图像分类领域的核心技术,网络结构设计直接影响特征提取的精度与泛化能力。在道路病害检测场景中,将路面图像快速分类为“正常”与“破损”是自动化巡检的关键环节。基于Keras框架复现LeNet-5、LeNet-5 2.0与AlexNet,围绕道路坑洼二分类展开对比实验,重点分析不同卷积核尺寸、池化方式及全连接层对路面纹理特征的敏感度,结合数据增强、Dropout与类别权重处理小样本和类别不平衡问题。从输入尺寸适配、卷积步长调整到预测脚本排错,提供一套可完整运行的工程流程。该项目既适合计算机

weixin_29102619的博客 225

[tensorflow2笔记九] 使用keras复现经典卷积网络LeNet、AlexNet、VGGNet、InceptionNet、ResNet

使用keras复现经典网络LeNet、AlexNet、VGGNet、InceptionNet、ResNet

滨哥v5的博客 541

Codex Skill:AI编程助手的专项能力扩展与实战指南

在AI编程助手领域,Skill(技能)是一种标准化的能力扩展机制,它通过封装特定任务所需的指令、资源和脚本,解决AI模型在专项任务上的能力局限。其核心原理是将专业知识和工作流程模块化,让通用AI助手能够像领域专家一样执行复杂任务。从技术价值看,Skill不仅提升了代码生成的准确性,更重要的是实现了业务流程的自动化集成,如代码规范检查、API文档生成等具体场景。这种机制特别适用于需要结合内部工具链和特定业务逻辑的企业环境,能够显著提升开发效率和质量。通过安装PPT生成、SpringBoot项目创建等专项Ski

weixin_33672109的博客 415

【tf.keras】tf.keras加载AlexNet预训练模型

目录 从 PyTorch 中导出模型参数 第 0 步:配置环境 第 1 步:安装 MMdnn 第 2 步:得到 PyTorch 保存完整结构和参数的模型(pth 文件) 第 3 步:导出 PyTorch 模型的参数,保存至 hdf5 文件 可能遇到的问题 ...

weixin_30568715的博客 884

头歌平台 操作系统课堂练习2.3:系统调用

使用 gdb 调试内核,跟踪到 main 函数入口的方法与之前实训一样。系统运行时,执行的前 3 个系统调用的编号和名字分别是什么?系统运行时,执行的前 3 个系统调用的编号和名字分别是什么?本关卡使用版本 1 内核进行分析,版本 1 内核文件存放在。为了完成本关任务,你需要:跟踪系统调用的发生。此时,系统调用号存放在寄存器 eax 中。

lazbuyaotoutu的博客 2万+

OCR开发车架号识别vin码识别系统

一、vin码识别车架号识别系统简介   vin码识别车架号识别系统,结合VIN码主机厂数据库及自身多年文字识别经验,针对机动车配置参数等信息的查询及采集业务推出的一款VIN码自动识别产品。   车架号识别vin码识别,主要应用在智能手机IOS与Android两个平台中。前端扫描查询模式,无需联网,只需扫描汽车前挡风玻璃右下角的VIN玛(车架号),即可轻松识别出车辆产地、品牌、车

OCR13512721355的博客 1434

【深度学习】 Keras 实现Minst数据集上经典网络结构(DeepDense、LeNet、AlexNet、ZFNet)分类

实验简介   本次实验一方面是熟悉Keras 序列式(Sequential)模型的使用,另一方面是复现早期的经典网络结构来学习神经网络搭建的技巧。数据集采用的是熟知的Minst手写识别,框架采用的是tensorflow、Keras,数据集和框架的导入和安装请点击这里。经典的网络结构已有大量博客进行理论分析,这里只给出代码仅供参考,关于神经网络结构的发展,推荐大家看这篇文章。 DeepDense  ...

乐川大佛的博客 778

nRF5340双核实战:从Zephyr环境搭建到蓝牙协议栈部署

本文详细介绍了nRF5340双核处理器的开发实践,包括Zephyr环境搭建、蓝牙协议栈部署及双核协同工作配置。通过实战案例展示了如何利用nRF5340的双核异构架构提升蓝牙应用性能,并提供了调试技巧与资源优化建议,帮助开发者高效实现低功耗蓝牙设备开发。

weixin_42525385的博客 382

第23课:TensorFlow|经典卷积网络模型精讲【LeNet、AlexNet结构拆解与复现】

本课回溯卷积神经网络的发展历程,深度解析两个里程碑模型:LeNet-5(1998)和AlexNet(2012)。LeNet-5是首个成功应用于手写数字识别的CNN,奠定了“卷积-池化-全连接”的基本架构。AlexNet则通过ReLU激活、Dropout、数据增强、GPU并行等技术,在ImageNet上大幅超越传统方法,开启了深度学习时代。本课将详细拆解两者的设计思想、网络结构、参数量计算及创新点,并使用TensorFlow 2.x完整复现这两个模型。

Java 后端|Python|AI 实战博主。专注微服务、分布式、大模型应用开发,输出可落地项目、源码剖析与面试总结。用通俗文字拆解技术难点,记录开发路上的学习与踩坑,期待和大家一起交流成长。 511

VMware 17+Win10 22H2全栈配置指南|UEFI优化+GPU直通实战

​VMware下载:下载官网版本的Wmare 17 Pro (点击直达链接 )企业用户可选永久许可证,个人学习也可以直接安装使用,Win10镜像:微软官网下载22H2版ISO文件(附官方纯净版渠道 )

waicsdn_haha的博客 4023

linux虚拟机和电脑ping通(可上网)

linux虚拟机(Ubuntu)和电脑ping通。

观则明的博客 4121

TensorFlow实战:从零手写AlexNet实现猫狗分类识别

卷积神经网络(CNN)是深度学习中最经典的图像处理模型,通过卷积层、池化层和全连接层的组合,能自动提取图像中的层次化特征。其原理基于局部感受野和权重共享,大幅减少了参数数量,使端到端学习成为可能。在图像分类、目标检测等计算机视觉任务中,CNN已成为主流方案。猫狗识别作为典型的二分类问题,是实践CNN的良好起点。以猫狗图像分类为例,详细解析如何用TensorFlow从零搭建AlexNet模型,涵盖数据增强、模型结构、训练调参和推理保存等完整流程,帮助掌握CNN实战的核心方法。

weixin_29056865的博客 315

手把手实现STM32+ESP8266+原子云服务器+手机APP应用——第三节-编写STM32程序实现STM32+ESP8266+原子云服务器+手机APP互相通信—远程数据传输及控制灯

接上一篇,本节使用原子云服务器。编写STM32程序实现STM32+ESP8266+原子云服务器+手机APP互相通信—远程数据传输及控制灯。使用的硬件包括:STM32F103(任意其他款系列也可以的)、正点原子ATK-ESP8266、LED灯。实现编写STM32程序代码来传输单片机数据到原子云服务器和手机APP进行显示,同时通过手机APP和原子云服务器可以远程控制单片机,例如本节实现远程点/灭灯,以此可以扩展开发更多的功能。本专栏本系列的相关文章可查看下面链接:

嵌入式阿齐Archie 8416

Keras构建lenet-5,alexnet,zfnet,vggnet,Google net,RESNET

lenet-5,alexnet,zfnet,vggnet,Google net,RESNET

网络架构 483

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

上一篇: 记录使用Tensorflow的一些问题
下一篇: Win10下安装OpenVINO
DeepLearningJay
博客等级 码龄7年 3064粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值