【TensorFlow2.0】如何搭建网络模型?

Tensorflow2.0 -搭建模型的多种方式 tf-操作技巧 阅读详情

大家好,这是专栏《TensorFlow2.0》的第四篇文章,讲述网络模型的搭建。

我们知道在不考虑输入层的情况下,一个典型的卷积神经网络通常由若干个卷积层、激活层、池化层及全连接层组成,无论是最经典的LeNet5,还是前两天刚出现的MobileNet V3,无一不都包含这些层。今天就带大家学习下如何使用TensorFlow2.0搭建卷积神经网络模型。

作者&编辑 | 汤兴旺 

上一期,我们讲解了如何使用TensorFlow2.0从自己的磁盘读取数据,今天我们就来看看如何使用层来搭建网络。


1 使用Keras API构建网络模型架构

在Keras API中,定义网络是比较简单的,我们主要用到的就是Sequential类,下面看看如何具体使用它来定义网络:

from tensorflow.keras import Sequential

conv_net = Sequential([

        layers.Dense(32,activation = "relu",input_shape = (784,)),

        layers.Dense(10,activation = "softmax")])

我们可以把Sequential理解为一个容器,然后把layers搭建的每层模型都送进这个容器中,构成整个网络模型。值得注意的layers搭建的每层模型要想放进这个容器中必须是list结构。

另外我们需要搭建的卷积层,全连接层,池化层等都在layers这个类中。下面我们看一个包含卷积层,全连接层,池化层比较完整的结构,如下:

from tensorflow.keras import Sequential

conv_layers = [

conv_net =Sequential(conv_layers)

fc_net = Sequential([

上面的模型中我们首先通过layers.Conv2D()、layers.MaxPool2D()构建模型的卷积网络层conv_layers,注意看我是把这个层放在了一个list中的,然后我把这个list即conv_layers放进了Sequential这个容器构建成了卷积网络conv_net。

卷积层完成构建后,我们通过layers.Dense添加全连接层,这样一个完整的结构就完成了。

基本的模型完成了搭建后,我们看前向处理是怎么做的,即数据如何从卷积层一步步传到最后的全连接层,最后输出一个预测值。

out = conv_net(x)

out = tf.reshape(out, [-1, 512])

logits = fc_net(out)

上面我们假设输入x是[1,32,32,3],即1张3通道大小为32*32的图片,经过卷积层后的输出为out,现在我们看看out是多少,查看方法如下:

x = tf.random.normal([1,32,32,3])

我们通过上面的代码很容易得到out.shape = [1,1,1,512]

为了能将卷积后的结果与全连接层相连,我们需要将它展平,即out = tf.reshape(out, [-1, 512]),最后我们将打平后的结果传递到全连接层网络fc_net得到预测值。

上面我们通过Sequential类完成了一个完整的模型搭建,你掌握了吗?

2 定义自己的网络层架构

上面我们通过Sequential类完成了一个简单的线性模型的搭建,下面我们看如何搭建自己的一个模型(非线性模型)。这里我们以ResNet系列网络为例。

import tensorflow as tf

filter_num,(3,3),strides=stride,padding="same")

def resnet34():

我们知道在ResNet中有一个基本的单元叫做basicBlock

640?wx_fmt=png

多个basicBlock的叠加就组成了resblock,而ResNet系列网络就是由多个不同resBlock组成的。

上面的代码中我们定义了一个基本的类basicBlock,它必须继承layers.Layer或者keras.Model这个类,也就是说所有的网络自定义都会继承这个类中的一个,并实现super方法,如下:

super(BasicBlock,self).__init__()

basicBlock基本结构完成后,我们需要实现前向运算,即call函数,如下:

def call(self,inputs,training=None):

从上面的代码可以看出call函数是比较简单的,串接各个网络层就可以了,这里不再详细说明。这样我们resnet的基本结构basicBlock就完成了构建。后面的resBlock实际上就是BasicBlock的叠加,实现的方法是一样的,就是定义个基本的类,并继承layers.Layer或者keras.Model这个类,再实现super方法。最后通过call函数完成前向运算。

总结

本期我们详细介绍了如何使用TensorFlow2.0完成网络模型的搭建。


下期预告:使用TensorFlow2.0完成从模型自定义到测试。

直播预告

640?wx_fmt=png

640?wx_fmt=png

今日看图猜技术

640?wx_fmt=png

网络结构

640?wx_fmt=png

有三AI生态

640?wx_fmt=png

转载文章请后台联系

侵权必究

更多请关注知乎专栏《有三AI学院》

640?wx_fmt=png

640?wx_fmt=jpeg

640?wx_fmt=png

640?wx_fmt=png

往期精选

TF2.0深度学习实战(七):手撕深度残差网络ResNet ResNet来源于《Deep Residual Learning for Image Recognition》这篇论文,在2015年,由微软亚洲研究院的何凯明等人共同发表。其研究成果在ILSVRC 2015挑战赛ImageNet数据集上获得分类任务和检测任务双冠军。ResNet论文至今已经获得超 25000 的引用量,可见 ResNet 在人工智能领域的影响力。我们常说的ResNet是一种基于跳跃连接的深度残差网络算法。 阅读详情

相关推荐

从零构建生产级K8s-v1.35.0集群:基于Containerd与Cilium的kubeadm实战指南

本文详细介绍了从零构建生产级K8s-v1.35.0集群的全过程,涵盖环境准备、Containerd配置、Kubernetes组件安装、集群初始化及Cilium网络部署等关键步骤。通过实战经验分享系统调优技巧和常见问题解决方案,帮助读者快速搭建稳定高效的Kubernetes集群。

weixin_28725553的博客 222

Tensorflow2.0 搭建CNN网络进行猫狗分类(一)

在搭建好tensorflow和cuda的配置后,就可以搭建自己的神经网络了,我将使用tensorflow2.0来搭建一个cnn网络,搭建网络的方法有很多,我这边会使用多种方法搭建,通过在处理训练数据上,训练的方法上搭建多个神经网络来比较之间的差别,我将使用的第一种方法如下: 通过cv2手动读取每张图片,转换尺寸大小并划分数据集和测试集,对数据集进行one-hot编码后,搭建三层卷积神经网络模型,建立神经网络(平坦层、隐藏层、输出层),通过调整上千万的参数,采用多分类损失函数等函数来调参,进行大约20次e.

码王吴彦祖的博客 3029

PotPlayer播放4K HDR电影时,如何正确设置LAV解码器与MadVR渲染器避免色彩失真?

本文详细介绍了如何在PotPlayer中正确配置LAV解码器与MadVR渲染器,以解决播放4K HDR电影时的色彩失真问题。从组件安装、参数设置到显卡协同配置,提供了一套完整的端到端解决方案,帮助影音爱好者获得最佳的视觉体验。

weixin_28732953的博客 442

基于opencv4.5的C++实现人脸检测模型测试

@[TOC]基于opencv4.5的C++实现人脸检测模型测试 个人思考:现在是研一。特别喜欢嵌入式方向。但是在嵌入式这个方向,本科生,甚至专科生如果项目做的多,代码写的多,其能力不会亚于一个研究生。所以我在想,我学过深度学习,模式识别,机器学习等课程,为什么不把机器视觉作为自己的第二方向,AI时代,不懂点AI都不好意思了。还有对我这种局外人,只搞技术,不搞科研,会用即可。这篇文章也是我在优快云上的第一篇文章,本小白决定每周必更新两篇技术文章,cheer一下!还有,只搞技术,不搞科研,写的不好,大佬不要讽

qq_41903550的博客 1359

【实战指南】EC-Engineer中ESI配置与PDO Mapping全流程解析

本文详细解析了EC-Engineer中ESI配置与PDO Mapping的全流程操作,包括环境准备、ESI文件导入技巧、在线配置细节及故障处理。特别强调了WinPcap驱动的兼容性问题和PDO Mapping的最佳实践,帮助工程师高效完成EtherCAT总线配置,适用于工业自动化领域的伺服控制与运动协同场景。

weixin_28730927的博客 397

晶圆测试(Wafer Sort)的核心技术与良率提升策略

晶圆测试(Wafer Sort)是芯片制造中的关键“入学考试”,通过探针台与自动测试设备(ATE)对晶圆上的芯片进行功能与参数测试,筛选不合格芯片以控制成本。本文深入解析了其核心技术,包括自动化视觉系统对准、测试流程优化策略,并探讨如何利用测试数据驱动良率提升,展望了DFT与AI智能测试的未来趋势。

e4f5g6h的博客 522

Tensorflow2.0搭建网络八股

本文主要借鉴:mooc曹建老师的《人工智能实践:Tensorflow笔记》第一个神经网络的搭建,利用tensorflow2.0提醒:跑数据的时候经理用一个空电脑,不然跑不动,内存不够,电脑会坏掉六步法牢记心中,每个网络都是这么搭建的,目前大家都是稍做了修改。

qq2844509367的博客 326

能量机关 STM32HAL库开发大疆A板WS2812B彩灯(PWM+DMA)

本文主要目的是为了制作RoboMaster比赛能量机关的灯条控制,模拟比赛场中大符,搭建出类似场地道具,以供视觉测试 使用的是RoboMaster开发板A型,芯片为STM32F427IIH6,使用的灯条为WS2812B。 采用PWM+DMA控制,使用CUBEMX配置底层,keil5编辑烧录代码 实现:一共五片扇叶,每片扇叶均实现流水灯+常亮颜色 参考文章在后面会标记出来

m0_51756449的博客 4292

Opencv DNN人脸检测

前言 OpenCV 3.3正式发布后,对深度学习(dnn模块)提供了更好的支持,dnn模块目前支持Caffe、TensorFlow、Torch、PyTorch等深度学习框架。 另外,新版本中使用预训练深度学习模型的API同时兼容C++和Python,让系列操作变得非常简便 从硬盘加载模型; 对输入图像进行预处理; 将图像输入网络,获取输出的分类。 当然,我们不能、也不该用OpenCV训练深度学...

weixin_44623637的博客 2150

YOLOv11 改进 - 注意力机制 | EMA (Efficient Multi-Scale Attention) 高效多尺度注意力:跨空间学习与多分支协同增强特征表征,优化多尺度目标检测

本文介绍了高效多尺度注意力(EMA)模块及其在YOLOv11中的结合应用。现有注意力机制在通道维度缩减时可能影响深度视觉表示,EMA模块通过结合通道和空间信息、采用多尺度并行子网络结构等创新点,实现了高效的多尺度注意力机制。其基本原理包括通道和空间注意力结合、多尺度并行子网络设计等。在多个流行基准数据集上的实验表明,该模块能有效提高特征表示能力。我们将EMA集成进YOLOv11,实验证明改进后的模型在目标检测任务中性能优越,具有广泛应用前景

魔改工程师的博客 1297

深度解读 ABAP CDS View 中的 @Analytics.dataCategory: #FACT 注解

注解在 ABAP CDS View 中具有重要意义。它不仅定义了当前视图在数据模型中的角色,还为后续的分析和报告奠定了基础。在实际开发中,通过合理使用这一注解,可以显著提升数据模型的可用性和系统性能。无论是简单的 KPI 展示还是复杂的多维分析,这一注解都能发挥关键作用。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 790

opencv4.5.0 c++ 人脸识别模型保存_【TensorFlow2.0】如何搭建网络模型?

大家好,这是专栏《TensorFlow2.0》的第四篇文章,讲述网络模型的搭建。我们知道在不考虑输入层的情况下,一个典型的卷积神经网络通常由若干个卷积层、激活层、池化层及全连接层组成,无论是最经典的LeNet5,还是前两天刚出现的MobileNet V3,无一不都包含这些层。今天就带大家学习下如何使用TensorFlow2.0搭建卷积神经网络模型。作者&编辑 | 汤兴旺上一期,...

weixin_39714015的博客 341

锐捷 MPLS VPN 配置

ISP内部配置 , PE设备和CE设备之间的接口不开启 ( 只在物理接口上配置 , loopback 口不配置 )最后一步关闭 ipv4 单播 , 如果你发现路由奇奇怪怪的 , 可以尝试一下。both --> 同时配置 import export 值。绑定后接口会重置 , 且接口的路由会转到VRF路由表中。这里基本上绑定了 vrf 实例的接口都需要宣告进去。vpnv 4 通道是用来传递 mpls 路由的。先建立邻居管理,建立VPNV4通道。这里要做双向引入 , 才会有路由。export 导出值。

dekangzou的博客 1712

tensorflow2.0+数据增强+VGG-Net

引言:上篇文章《VGG-net训练过程总结》详细介绍了VGG网络结构和训练过程,主要是使用1.x训练。今天在学习Tensorflow2.0,也从新使用2.0来实现VGG网络。 1、导入相关包 import tensorflow as tf import numpy as np import pickle as p import os from tensorflow.keras import...

DYF的博客 3496

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Tensorflow 2.0 实现汽车效能指标 MPG 预测

    终究还是要学习Tensorflow 2.0 的,发现确实2.0比1.0版本的好太多了,感觉精简了些,同时训练的细节要自己实现,这比keras更锻炼自己一些,keras封装太厉害啦。而且可能是我学习的tf2.0少,学到目前还都不需要构建数据集的生成器,这点比keras, pytorch又省了一波。     下面附上所用的数据集,来自UCI:MPG数据集链接。     我只实现了数据集的准备,训练部分,测试的话没啥意思,重点是学习Tensorflow 2.0 的语法。 # -*- coding: utf

qq_35874169的博客 473

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Tensorflow2.0

人工智能3学派行为主义:基于控制论,构建感知-动作控制系统。(控制论,如平衡、行走、避障等自适应控制系统)符号主义:基于算数逻辑表达式,求解问题时先把问题描述为表达式,再求解表达式。(可用公式描述、实现理性思维,如专家系统)连接主义:仿生学,模仿神经元连接关系。(仿脑神经元连接,实现感性思维,如神经网络)行为主义的例子,让机器人单脚站立,通过感知要摔倒的方向控制两只手的动作,保持身体的平衡,这就构建了一个感知-动作控制系统。

m0_52118763的博客 1583

Tensorflow2.0学习笔记--Day2

Tensorflow2.0学习笔记–Day2 这次主要是入门了一波基本的全连接神经网络,以及卷积神经网络模型的构建 接着上次的来看 输出单张图片函数: def show_single_image(img_arr): plt.imshow(img_arr, cmap="binary")#cmap颜色图谱默认RGB,黑白用的binary plt.show() show_single_...

qq_42388523的博客 357

TensorFlow2.0.0_课时19-22_神经网络搭建_回归问题

import numpy as np import pandas as pd import matplotlib.pyplot as plt import tensorflow as tf from tensorflow.keras import layers import tensorflow.keras import warnings warnings.filterwarnings("igno...

weixin_46276803的博客 465

Python深度学习入门之mnist-VGG(Tensorflow2.0实现)

mnist手写数字数据集深度学习最常用的数据集,本文以mnist数据集为例,利用Tensorflow2.0框架搭建VGG网络,实现mnist数据集识别任务,并画出各个曲线。 Demo完整代码如下: import tensorflow as tf from tensorflow.keras import layers import numpy as np #加载mnist数据集 (x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.lo

weixin_44414948的博客 1344

【完结】TensorFlow2.0 快速上手手册

大家好,这是专栏《TensorFlow2.0》的第五篇文章,我们对专栏《TensorFlow2.0》进行一个总结。我们知道全新的TensorFlow2.0 Alpha已经...

hacker_long的专栏 849

损失函数的意义和作用_「马上学tensorflow 2.0」神经网络剖析:层、模型、损失与优化器...

大家好,今天我们学习【马上学tensorflow 2.0】之 神经网络剖析:层、模型、损失函数与优化器。我们 马上学三点 :层:深度学习的基础组件,基本数据结构模型:层构成的网络损失函数与优化器:配置学习过程的关键大家可以点击下面的“ 了解更多 ”, 或全网搜索“ 马上学123 ”, 查看讲义PPT和参考文献。tensorflow 层、网络模型、损失函数和优化器之间的关系层、网络模型、损失函数和优...

weixin_39767386的博客 1396

深度学习笔记17_TensorFlow实现咖啡豆识别

本周通过tenserflow框架创建VGG16网络模型进行猴痘病识别学习,学习如何搭建VGG16网络模型,学习在不影响准确率的前提下轻量化模型;通过使用全局平均池化代替全连接层,极大的减少了网络的参数量。

L1073203482的博客 744

YOLO V3基于Tensorflow 2.0的完整实现

YOLO V3版本是一个强大和快速的物体检测模型,同时原理上也相对简单。我之前的博客中已经介绍了如何用Tensorflow来实现YOLO V1版本,之后我自己也用Tensorflow 1.X版本实现了YOLO V3,现在Tensorflow演进到了2.0版本,相比较1.X版本做了很大的改进,也更加易用了,因此我记录一下如何用Tensorflow 2.0版本来实现YOLO V3。网上能找到的很多Te...

9246

tensorflow使用笔记(二)简单神经网络模型的搭建

tensorflow使用笔记(二) 搭建一个简单的网络模型 简单的搭建一个三层网络结构的模型: import tensorflow as tf import numpy as np import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 定义一个网络层 def add_layer(inputs, in_size, out_size, activa...

zx_leaves的博客 475

TensorFlow 人脸识别网络与对抗网络搭建

本场 Chat 开始复杂网络模型的搭建,这个过程中如果你用的是单机的话一定要保证电脑的内存以及运算速度足够。复杂的网络内存都是 4G 起步。而伴随着计算消耗的增大,将给我们带来更加有震撼性的结果。比如理解为何手机人脸识中矩形框是如何产生的,比如人脸识别网络结构是怎么样的,比如 GoogleNet 以及 Inception 等各种人脸识别网络性能如何,微观结构的差别是什么?最后来搭建一个对抗生成网络...

GitChat 505
上一篇: “有三AI百人”专栏作者培养计划启动,爱写作的你还等什么呢?
下一篇: 【知识星球】LeNet5,AlexNet,VGG,MobileNet它们的前身都是什么,你知道吗?
言有三
言有三 领域专家: 人工智能技术领域 领域专家: 人工智能技术领域
博客等级 码龄15年 3635粉丝 976原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

言有三

三人行必有AI

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值