【TensorFlow2.0】以后我们再也离不开Keras了?

TensorFlow之神经网络layers模块详解 tf.nn,tf.layers, tf.contrib概述: 我们在使用tensorflow时,会发现tf.nn,tf.layers, tf.contrib模块有很多功能是重复的,尤其是卷积操作,在使用的时候,我们可以根据需要现在不同的模块。但有些时候可以一起混用。 下面是对三个模块的简述: (1)tf.nn :提供神经网络相关操作的支持,包括卷积操作(conv)、池化操作(pooling)、归... 阅读详情

1 Keras概述

在TensorFlow2.0中,Keras是一个用于构建和训练深度学习模型的高阶 API。因此如果你正在使用TensorFow2.0,那么使用Keras构建深度学习模型是您的不二选择。在Keras API中总共有如下三大块:
在这里插入图片描述

在Modules中有构建训练模型各种必备的组件,如激活函数activations、损失函数losses、优化器optimizers等;在Class中有Sequential和Model两个类,它们用来堆叠模型;在Functions中有Input()函数,它用来实例化张量。

因此若您使用的深度学习框架是TensorFlow,而且是2.0版本,那么你就不可能不使用tensorflow.keras。这也就是使用过TensorFlow2.0版本的都在吐槽全世界都是Keras的原因。

2 Modules

通过上面的介绍,我们知道在Modules中有activations、losses、optimizers等构建训练模型时各种必备的组件。下图就是Modules中有所的模块。

下面我们详细说说里面最常见的几个模块应该如何使用。
在这里插入图片描述

1. 常用的数据集(datasets)

在TensorFlow2.0中,常用的数据集需要使用tf.keras.datasets来加载,在datasets中有如下数据集。
在这里插入图片描述

对于上图中的数据集我们可以像下面这样加载

(train_images,train_labels),(test_images,test_labels)= keras.datasets.fashion_mnist.load_data()

当然我们平时使用的数据集肯定不在于此,这些数据集都是些最基础的数据集。对于自己的数据如何读取,请期待我们下次的分享。

2. 神经网络层(Layers)

在构建深度学习网络模型时,我们需要定制各种各样的层结构。这时候就要用到layers了,下图是TensorFlow2.0中部分层,它们都是Layer的子类。
在这里插入图片描述

那么我们如何使用layer来构建模型呢?方法如下:

from tensorflow.keras import layers

layers.Conv2D()

layers.MaxPool2D()

layers.Flatten()

layers.Dense()

3. 激活函数(Optimizers)

在构建深度学习网络时,我们经常需要选择激活函数来使网络的表达能力更强。下面将介绍TensorFlow2.0中的激活函数及它们应该在TensorFlow2.0中该如何使用。下图是TensorFlow2.0中部分激活函数:

在这里插入图片描述

from tensorflow.keras import layers

layers.Conv2D(…,activation=‘relu’)

layers.Dense(…,activation=‘softmax’)

4. 优化器(activations)

通常当我们准备好数据,设计好模型后,我们就需要选择一个合适的优化器(Optimizers)对模型进行优化。下面将介绍TensorFlow2.0中的优化器及他们应该在TensorFlow2.0中该如何使用。下图是TensorFlow2.0中所有的优化器,它们都是Optimizer的子类。
在这里插入图片描述

对于优化器的使用你可以像下面这样使用:

optimizers = tf.keras.optimizers.Adam()

optimizers = tf.keras.optimizers.SGD()

…

5. 损失函数(Losses)

我们知道当我们设计好模型时我们需要优化模型,所谓的优化就是优化网络权值使损失函数值变小,但是损失函数变小是否能代表精度越高呢?那么多的损失函数,我们又该如何选择呢?接下来我们了解下在TensorFlow2.0中如何使用损失函数。下图是TensorFlow2.0中所有的损失函数,它们都是Loss的子类。
在这里插入图片描述

对于损失函数的使用你可以像下面这样使用:

loss = tf.keras.losses.SparseCategoricalCrossentropy()

loss = tf.keras.losses.mean_squared_error()

…

3 Class

在Class中有Sequential和Model两个类,它们分别是用来堆叠网络层和把堆叠好的层实例化可以训练的模型。
在这里插入图片描述

1. Model

对于实例化Model有下面两种方法

(1).使用keras.Model API

import tensorflow as tf
inputs = tf.keras.Input(shape=(3,))
x=tf.keras.layers.Dense(4,activation=tf.nn.relu(inputs)
outputs=tf.keras.layers.Dense(5, activation=tf.nn.softmax)(x)
model=tf.keras.Model(inputs=inputs, outputs=outputs)

(2).继承Model类

import tensorflow as tf
class MyModel(tf.keras.Model):
def init(self):
super(MyModel, self).init()
self.dense1 = tf.keras.layers.Dense(4, activation=tf.nn.relu)
self.dense2 = tf.keras.layers.Dense(5, activation=tf.nn.softmax)
def call(self, inputs):
x = self.dense1(inputs)
return self.dense2(x)
model = MyModel()

2. Sequential

在TensorFlow2.0中,我们可以使用Sequential模型。具体方式如下:

model = keras.Sequential()

model = model.add(layers.Conv2D(input_shape=(x_train.shape[1], x_train.shape[2],x_train.shape[3]),filters=32,kernel_size=(3,3), strides=(1,1), padding=‘valid’,activation=‘relu’))

model.add(layers.MaxPool2D(pool_size=(2,2)))

model.add(layers.Flatten())model.add(layers.Dense(32,activation=‘relu’))

model.add(layers.Dense(10, activation=‘softmax’))

model.compile(optimizer=keras.optimizers.Adam(),loss=keras.losses.SparseCategoricalCrossentropy(),metrics=[‘accuracy’])

4 Functions

在Functions中,有一个Input函数,其用来实例化Keras张量。对于Input函数,它有如下参数

tf.keras.Input(
shape=None,
batch_size=None,
name=None,
dtype=None,
sparse=False,
tensor=None,
**kwargs
)

具体方法如下:

x = Input(shape=(32,))
y = Dense(16, activation=‘softmax’)(x)
model = Model(x, y)

5 简单的图像分类模型实例

#1导入相应的API

import tensorflow as tf

from tensorflow import keras

from tensorflow.keras import layers

#2加载数据

(train_images,train_labels),(test_images,test_labels)= keras.datasets.fashion_mnist.load_data()

#3构建网络

model = keras.Sequential()

model = model.add(layers.Conv2D(input_shape=(x_train.shape[1], x_train.shape[2],x_train.shape[3]),filters=32,kernel_size=(3,3), strides=(1,1), padding=‘valid’,activation=‘relu’))

model.add(layers.MaxPool2D(pool_size=(2,2)))

model.add(layers.Flatten())model.add(layers.Dense(32,activation=‘relu’))

model.add(layers.Dense(10, activation=‘softmax’))

model.compile(optimizer=keras.optimizers.Adam(),loss=keras.losses.SparseCategoricalCrossentropy(),metrics=[‘accuracy’])

#4模型显示

model.summary()

#5模型训练

model_train=model.fit(x_train, y_train, batch_size=64, epochs=5, validation_split=0.1)

总结

在本讲中,我们简单的了解了TensorFlow2.0中高级API Keras是如何使用的,我们可以看到Keras真的是无处不在,如果你想学好TensorFlow2.0,那么你必须掌握好Kears。

tensorflow2.0教程- Keras 快速入门 tensorflow.keras 快速入门 完整tensorflow2.0教程代码请看tensorflow2,0:中文教程tensorflow2_tutorials_chinese(欢迎star) Keras 是一个用于构建和训练深度学习模型的高阶 API。它可用于快速设计原型、高级研究和生产。 keras的3个优点: 方便用户使用、模块化和可组合、易于扩展 1.导入tf.keras tens... 阅读详情

相关推荐

Tensorflow2.0 keras InceptionResNetV2代码实现

目录迁移学习自编代码定义卷积单元Stem模块InceptionRes A模块InceptionRes B模块InceptionRes C模块Reduction AReduction BBuild Inception-ResNet补充: 模型介绍请参看:博文 出处:Google AI 迁移学习 首先还是看看标准答案 import tensorflow as tf from tensorflow import keras base_model = keras.applications.Incept

Forrest97的博客 3652

tensorflow配置安装记录

tensorflow和keras的安装与一些问题解决

stc980511的博客 590

Tensorflow2.0 keras MobileNetV2 代码实现

目录迁移学习自编程序BlockDepthwise Separable block参考 网络介绍请参看:博文 keras搭建深度学习模型的若干方法:博文 直接上网络结构 迁移学习 依旧看看标准答案 import tensorflow as tf from tensorflow import keras base_model = keras.applications.MobileNetV2(weights='imagenet') base_model.summary() 自编程序 Block

Forrest97的博客 4422

Tensorflow2.0——keras

Tensorflow2.0数据集加载 数据集加载 keras.datasets boston housing/Mnist/CIFAR10/100/imdb tf.Datasets.from_tensor_slices 1.Mnist手写数据集 2.CIFAR10/100 from_tensor_slices():将numpy格式转换为tensor格式,还可以同时接收x和y,0存放特征数据,1存放标签。 shuffle map batch repeat 重复迭代数据集

qq_42873479的博客 450

解决tensorflow.keras无法引入layers问题

最近想学习一下Keras,利用Conda创建的TensorFlow2.0环境开始进入Keras。刚开始搭建网络,TensorFlow2.0推荐使用Keras来构建网络结构。但是当我根据教程引入Keras时显示没有这个库。。具体是这样敲的。 报错显示我没有Keras,无法导入。通过网上搜索没发现有效的解决方法。换一种思路去搜索试试,显示TensorFlow没有Keras会不会是由于我的路径错了...

ljx0951的博客 2万+

linux redis7 完整的集群搭建过程

一。安装: 1.1 说明: Redis官方只提供了源码,并没有提供经过编译之后的安装包。 因此,安装Redis,要先编译、后安装。(即源码安装方式) 注意:需要联网安装 1.2 安装编译的工具: yum install gcc gcc-c++ -y 1.3 下载tar包,上传到linux服务器,解压配置环境变量 1.4 cd +解压的目录下:编译 make 注意:如果编译失败,请重新进行解压编译,...

m0_38028438的博客 718

Keras读书笔记----其他重要模块

1. 目标函数Objectives目标函数,或称损失函数,是编译一个模型必须的两个参数之一可以通过传递预定义目标函数名字指定目标函数,也可以传递一个Theano/TensroFlow的符号函数作为目标函数,该函数对每个数据点应该只返回一个标量值,并以下列两个参数为参数:y_true:真实的数据标签, Theano/TensorFlow张量y_pred:预测值,与y_true相同shape的Thea...

梵天的读书笔记 3427

Rust练手:从零手撸RISC-V架构虚拟机(一)(附完整代码)

使用Rust实现一个简单的RISC-V架构的CPU雏形,支持add,sub,addi三个指令。

qq_45983373的博客 2568

tf.add_weight 和 tf.Variable使用例子

class Linear(keras.layers.Layer): def __init__(self, units=32, input_dim=32): super(Linear, self).__init__() w_init = tf.random_normal_initializer() self.w = tf.Variable( initial_value=w_init(shape=(input_dim, units)

github_39605284的博客 5886

数仓项目6.0(一)

数据同步工具种类繁多,大致可分为两类,一类是以DataX、Sqoop为代表的基于Select查询的离线、批量同步工具,另一类是以Maxwell、Canal为代表的基于数据库数据变更日志(例如MySQL的binlog,其会实时记录所有的insert、update以及delete操作)的实时流式同步工具。DataX的使用,用户只需根据数据的数据源和目的地选择相应的Reader和Writer,并将Reader和Writer的信息配置在一个json文件中,然后执行如下命令提交数据同步任务即可。

qq_58551342的博客 2847

何恺明团队MeanFlow论文解读:单步生成模型如何实现ImageNet 256×256的SOTA效果?

何恺明团队提出的MeanFlow框架在生成式AI领域实现重大突破,通过引入平均速度场概念,在ImageNet 256×256数据集上达到单步生成3.43 FID的SOTA效果。该技术解决了传统Flow Matching方法的积分误差累积问题,显著提升生成效率与质量,为AI图像生成应用开辟新方向。

weixin_30687051的博客 397

【TensorFlow2.0】以后我们再也离不开Keras了

http://url.cn/53g3Djh 转载于:https://www.cnblogs.com/changbaishan/p/10829959.html

weixin_30460489的博客 286

ITIL 4 Foundation 自学通关笔记1

ITIL 4 Foundation 自学通关笔记

m0_58817196的博客 947

TensorFlow2.0教程-keras模型保存和序列化

TensorFlow2教程-keras模型保存和序列化 1.保持序列模型和函数模型 # 构建一个简单的模型并训练 from __future__ import absolute_import, division, print_function import tensorflow as tf tf.keras.backend.clear_session() from tensorflow impor...

知行_那片天 1万+

嵌入式工程师成长之路(10)——项目举例

送给大学毕业后找不到奋斗方向的你(每周不定时更新)

云轩阁 5万+

解锁RK3588 HDMI输出:分辨率与EDID的深度探索

本文详细探讨了瑞芯微RK3588处理器的HDMI输出分辨率配置与EDID解析技术。文章首先介绍了RK3588处理器的性能特点及其HDMI功能在多媒体和工业领域的应用价值,随后分别阐述了HDMI输出分辨率的硬件连接要求和软件配置方法,包括4K/8K等不同分辨率的配置实例。在EDID部分,深入解析了EDID的数据结构、交互机制,以及数据获取与修改的具体方法。最后总结了配置过程中常见问题的解决方案,并展望了RK3588在高分辨率显示领域的发展前景。全文为开发者提供了RK3588 HDMI显示配置的完整技术指南。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 587

TensorFlow2.0教程-keras 函数api

TensorFlow2.0教程-keras 函数api 完整tensorflow2.0教程代码请看tensorflow2,0:中文教程tensorflow2_tutorials_chinese(欢迎star) # !pip install pydot #!sudo apt-get install graphvizf from __future__ import absolute_import, ...

知行_那片天 1万+

【OpenClaw企业级智能体实战】第04篇:OpenClaw成本优化实战——Token消耗降96%!claude-mem+OpenViking从入门到精通

OpenClaw作为企业级智能体框架,凭借强大的自动化能力成为企业数字化转型的热门工具,但原生机制导致的上下文冗余问题,让众多用户面临“Token消耗失控”的困境——单周账单数千元的案例屡见不鲜。本文基于阿里云实测数据与开源工具官方文档,先深度拆解OpenClaw成本黑洞的核心成因(记忆碎片化、Token指数级膨胀),再系统讲解两款核心优化工具(claude-mem单Agent记忆管理、OpenViking多Agent集群底座)的底层原理、算法架构与实现逻辑,提供从环境搭建、工具集成、参数调优到安全部署

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 701

Tensorflow2.0 keras DenseNet121 系列 代码实现

目录迁移学习自编代码参考 模型介绍请参看:博文 keras搭建深度学习模型的若干方法:博文 迁移学习 import tensorflow as tf from tensorflow import keras base_model = keras.applications.DenseNet121(weights='imagenet') base_model.summary() 自编代码 在这里插入代码片 参考 https://github.com/titu1994/DenseNet http

Forrest97的博客 7438

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

【Tensorflow2.0】4、Tensorflow2.0+Keras_快速入门教程

本文是学习keras作者关于tensorflow2.0的教程 全部代码参见我的github #安装tensorflow !pip install tensorflow==2.0.0 import tensorflow as tf print(tf.__version__) 2.0.0 Tensorflow2.0+Keras综述 作者:fchollet,2019年10月 本文是关于Tenso...

dddeee的专栏 3970

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

TensorFlow2.0 学习笔记(六):TensorFlow2.0 和 Keras 的纠葛

专栏——TensorFlow学习笔记 文章目录专栏——TensorFlow学习笔记一、TensorFlow 2.0 和 Keras 的关系二、Keras Sequential/Functional API 模式建立模型三、使用 Keras Model 方法训练和评估模型参考文章 一、TensorFlow 2.0 和 Keras 的关系 如果你学过 Keras 的话,就会发现上面的实例中均使用了 S...

种树最好的时间是10年前,其次是现在!!! 7839

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

tensorflow2.4.0对应得keras版本是什么

TensorFlow 2.4.0 是 TensorFlow 2.x 系列的一个重要版本,它带来了许多性能优化和新功能。这个版本进一步简化了 API,提高了模型训练和推理的效率。如果你正在使用 TensorFlow 2.4.0,那么你可能已经体验到了这些改进。

yjq125931902的博客 1345

Keras与tf.keras:TensorFlow 2.0有什么区别?

  在本教程的第一部分中,我们将讨论Keras和TensorFlow之间相互交织的历史,包括他们共同的受欢迎程度如何相互滋养,相互促进和滋养,使我们走向今天。   然后,我将讨论为什么您应该在以后的所有深度学习项目和实验中都使用tf.keras。   接下来,我将讨论“计算后端”的概念,以及TensorFlow的流行度如何使其成为Keras最流行的后端,从而为Keras集成到TensorFlow的tf.keras子模块中铺平了道路。   最后,我们将讨论作为Keras用户应关注的一些最受欢迎的TensorF

jiuweideqixu的博客 1835

tensorflow和keras版本对应关系

Tensorflow版本 Keras版本 Tensorflow 2.1 Tensorflow 2.0 Tensorflow 1.15 Keras 2.3.1 Tensorflow 1.14 Keras 2.2.5 Tensorflow 1.13 Tensorflow 1.12 Tensorflow 1.11 Keras 2.2.4 Tensorflow 1.10 Tensorflow 1.9 Keras 2.2.0 Tensorflow 1.8 Tensorflow...

StarkerRegen的博客 6万+
上一篇: 【TensorFlow2.0】tf.keras.preprocessing.image.ImageDataGenerator#flow_from_diectory
下一篇: Spark代码可读性与性能优化——示例六(groupBy、reduceByKey、aggregateByKey)
Accelerating
博客等级 码龄9年 3220粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值