返回顶部
首页 > 资讯 > 精选 >TensorFlow训练网络的方式有哪些
  • 826
分享到

TensorFlow训练网络的方式有哪些

2023-06-22 06:06:56 826人浏览 八月长安
摘要

这篇文章给大家分享的是有关Tensorflow训练网络的方式有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。TensorFlow训练网络有两种方式,一种是基于tensor(array),另外一种是迭代器两种方

这篇文章给大家分享的是有关Tensorflow训练网络的方式有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

TensorFlow训练网络有两种方式,一种是基于tensor(array),另外一种是迭代器

两种方式区别是:

  • 第一种是要加载全部数据形成一个tensor,然后调用model.fit()然后指定参数batch_size进行将所有数据进行分批训练

  • 第二种是自己先将数据分批形成一个迭代器,然后遍历这个迭代器,分别训练每个批次的数据

方式一:通过迭代器

IMAGE_SIZE = 1000# step1:加载数据集(train_images, train_labels), (val_images, val_labels) = tf.keras.datasets.mnist.load_data()# step2:将图像归一化train_images, val_images = train_images / 255.0, val_images / 255.0# step3:设置训练集大小train_images = train_images[:IMAGE_SIZE]val_images = val_images[:IMAGE_SIZE]train_labels = train_labels[:IMAGE_SIZE]val_labels = val_labels[:IMAGE_SIZE]# step4:将图像的维度变为(IMAGE_SIZE,28,28,1)train_images = tf.expand_dims(train_images, axis=3)val_images = tf.expand_dims(val_images, axis=3)# step5:将图像的尺寸变为(32,32)train_images = tf.image.resize(train_images, [32, 32])val_images = tf.image.resize(val_images, [32, 32])# step6:将数据变为迭代器train_loader = tf.data.Dataset.from_tensor_slices((train_images, train_labels)).batch(32)val_loader = tf.data.Dataset.from_tensor_slices((val_images, val_labels)).batch(IMAGE_SIZE)# step5:导入模型model = LeNet5()# 让模型知道输入数据的形式model.build(input_shape=(1, 32, 32, 1))# 结局Output Shape为 multiplemodel.call(Input(shape=(32, 32, 1)))# step6:编译模型model.compile(optimizer='adam',              loss=tf.keras.losses.SparseCateGoricalCrossentropy(from_logits=True),              metrics=['accuracy'])# 权重保存路径checkpoint_path = "./weight/cp.ckpt"# 回调函数,用户保存权重save_callback = tf.keras.callbacks.ModelCheckpoint(filepath=checkpoint_path,                                                   save_best_only=True,                                                   save_weights_only=True,                                                   monitor='val_loss',                                                   verbose=0)EPOCHS = 11for epoch in range(1, EPOCHS):    # 每个批次训练集误差    train_epoch_loss_avg = tf.keras.metrics.Mean()    # 每个批次训练集精度    train_epoch_accuracy = tf.keras.metrics.SparseCategoricalAccuracy()    # 每个批次验证集误差    val_epoch_loss_avg = tf.keras.metrics.Mean()    # 每个批次验证集精度    val_epoch_accuracy = tf.keras.metrics.SparseCategoricalAccuracy()    for x, y in train_loader:        history = model.fit(x,                            y,                            validation_data=val_loader,                            callbacks=[save_callback],                            verbose=0)        # 更新误差,保留上次        train_epoch_loss_avg.update_state(history.history['loss'][0])        # 更新精度,保留上次        train_epoch_accuracy.update_state(y, model(x, training=True))        val_epoch_loss_avg.update_state(history.history['val_loss'][0])        val_epoch_accuracy.update_state(next(iter(val_loader))[1], model(next(iter(val_loader))[0], training=True))    # 使用.result()计算每个批次的误差和精度结果    print("Epoch {:d}: trainLoss: {:.3f}, trainAccuracy: {:.3%} valLoss: {:.3f}, valAccuracy: {:.3%}".fORMat(epoch,                                                                                                             train_epoch_loss_avg.result(),                                                                                                             train_epoch_accuracy.result(),                                                                                                             val_epoch_loss_avg.result(),                                                                                                             val_epoch_accuracy.result()))

方式二:适用model.fit()进行分批训练

import model_sequential(train_images, train_labels), (test_images, test_labels) = tf.keras.datasets.mnist.load_data()# step2:将图像归一化train_images, test_images = train_images / 255.0, test_images / 255.0# step3:将图像的维度变为(60000,28,28,1)train_images = tf.expand_dims(train_images, axis=3)test_images = tf.expand_dims(test_images, axis=3)# step4:将图像尺寸改为(60000,32,32,1)train_images = tf.image.resize(train_images, [32, 32])test_images = tf.image.resize(test_images, [32, 32])# step5:导入模型# history = LeNet5()history = model_sequential.LeNet()# 让模型知道输入数据的形式history.build(input_shape=(1, 32, 32, 1))# history(tf.zeros([1, 32, 32, 1]))# 结局Output Shape为 multiplehistory.call(Input(shape=(32, 32, 1)))history.summary()# step6:编译模型history.compile(optimizer='adam',                loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),                metrics=['accuracy'])# 权重保存路径checkpoint_path = "./weight/cp.ckpt"# 回调函数,用户保存权重save_callback = tf.keras.callbacks.ModelCheckpoint(filepath=checkpoint_path,                                                   save_best_only=True,                                                   save_weights_only=True,                                                   monitor='val_loss',                                                   verbose=1)# step7:训练模型history = history.fit(train_images,                      train_labels,                      epochs=10,                      batch_size=32,                      validation_data=(test_images, test_labels),                      callbacks=[save_callback])

感谢各位的阅读!关于“TensorFlow训练网络的方式有哪些”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: TensorFlow训练网络的方式有哪些

本文链接: https://lsjlt.com/news/303056.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • TensorFlow训练网络的方式有哪些
    这篇文章给大家分享的是有关TensorFlow训练网络的方式有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。TensorFlow训练网络有两种方式,一种是基于tensor(array),另外一种是迭代器两种方...
    99+
    2023-06-22
  • 详解TensorFlow训练网络两种方式
    TensorFlow训练网络有两种方式,一种是基于tensor(array),另外一种是迭代器 两种方式区别是: 第一种是要加载全部数据形成一个tensor,然后调用mo...
    99+
    2024-04-02
  • pytorch的多GPU训练的方式有哪些
    这篇文章将为大家详细讲解有关pytorch的多GPU训练的方式有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。方法一:torch.nn.DataParallel1. 原理如下图所示:小朋友一个人做4份...
    99+
    2023-06-29
  • 如何在python中使用Tensorflow训练BP神经网络
    如何在python中使用Tensorflow训练BP神经网络?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。使用软件Python 3.8,Tensorflow2.0问题描述鸢...
    99+
    2023-06-15
  • python神经网络tensorflow利用训练好的模型进行预测
    目录学习前言载入模型思路实现代码学习前言 在神经网络学习中slim常用函数与如何训练、保存模型文章里已经讲述了如何使用slim训练出来一个模型,这篇文章将会讲述如何预测。 载入模型思...
    99+
    2024-04-02
  • 如何在TensorFlow中训练一个简单的神经网络模型
    在TensorFlow中训练一个简单的神经网络模型通常需要以下步骤: 数据准备:准备好训练数据和测试数据,并对数据进行预处理和标...
    99+
    2024-03-01
    TensorFlow
  • TensorFlow提供了哪些优化器来训练模型
    TensorFlow提供了多种优化器来训练模型,常用的包括: tf.keras.optimizers.SGD:随机梯度下降优化器 ...
    99+
    2024-03-01
    TensorFlow
  • python 使用Tensorflow训练BP神经网络实现鸢尾花分类
    Hello,兄弟们,开始搞深度学习了,今天出第一篇博客,小白一枚,如果发现错误请及时指正,万分感谢。 使用软件 Python 3.8,Tensorflow2.0 问题描述 鸢尾花主要分为狗尾草鸢尾(0)、杂色鸢尾...
    99+
    2022-06-02
    python 使用Tensorflow python 训练BP神经网络 python 鸢尾花分类
  • Tensorflow训练模型默认占满所有GPU的解决方案
    目录Tensorflow训练模型默认占满所有GPU问题TensorFlow默认的是占用所有GPU解决tensorflow2.2把GPU显存占满解决代码总结Tensorflow训练模型...
    99+
    2023-05-12
    Tensorflow训练 Tensorflow训练模型 Tensorflow训练默认占满GPU
  • pytorch建立mobilenetV3-ssd网络并进行训练与预测方式
    目录Step1:搭建mobilenetV3-ssd网络框架需要提前准备的函数和类mobilenetV3_large调用mobilenetV3的ssd网络Step2:训练训练数据预处理...
    99+
    2023-02-17
    pytorch网络 pytorch mobilenetV3-ssd pytorch建立mobilenetV3-ssd网络
  • tensorflow模型搭建的方式有哪些
    Sequential模型:使用Sequential模型,可以直接将一系列层按顺序堆叠起来,构建神经网络模型。 Functio...
    99+
    2024-03-12
    tensorflow
  • 有哪些常见的网络推广方式
    本篇文章给大家分享的是有关有哪些常见的网络推广方式,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。网络推广(web promotion)是以企业产品或服务为核心内容,建立网站、A...
    99+
    2023-06-14
  • pytorch训练神经网络爆内存的解决方案
    训练的时候内存一直在增加,最后内存爆满,被迫中断。 后来换了一个电脑发现还是这样,考虑是代码的问题。 检查才发现我的代码两次存了loss,只有一个地方写的是loss.item()。...
    99+
    2024-04-02
  • docker的网络模式有哪些
    Docker的网络模式有以下几种: bridge(默认):Docker在主机上创建一个虚拟的网络桥接接口,容器加入到这个网络中后可...
    99+
    2023-10-30
    docker
  • 使用Pytorch训练two-head网络的操作
    之前有写过一篇如何使用Pytorch实现two-head(多输出)模型 在那篇文章里,基本把two-head网络以及构建讲清楚了(如果不清楚请先移步至那一篇博文)。 但是我后来发现之...
    99+
    2024-04-02
  • 云服务器训练模型有哪些
    云服务器提供了大量的计算能力,包括CPU、内存、存储、网络和应用程序运行环境,以及强大的扩展性和灵活性。云服务器还提供了可扩展性,可以随着业务增长而扩展计算能力。这使得云服务器成为企业和个人的重要计算资源。 使用云服务器,用户可以轻松地搭...
    99+
    2023-10-27
    模型 服务器 有哪些
  • linux网络模式有哪些
    linux中的网络模式有:1.桥接模式,将主机网卡与虚拟机的虚拟网卡利用虚拟网桥进行通信;2.NAT模式,虚拟NAT设备或虚拟DHCP服务器实现的虚拟机联网;3.仅主机模式,只能访问主机及使用指定网卡虚拟机的网络模式;linux中的网络模式...
    99+
    2024-04-02
  • JS实现网络请求的方式有哪些
    这篇文章将为大家详细讲解有关JS实现网络请求的方式有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。背景为了应对越来越多的测试需求,减少重复性的工作,有道智能硬件测试组基于 electron 开发了一系...
    99+
    2023-06-29
  • python神经网络TensorFlow常用基本操作有哪些
    本篇内容主要讲解“python神经网络TensorFlow常用基本操作有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python神经网络TensorFlow常用基本操作有哪些”吧!要将深度...
    99+
    2023-06-25
  • 前端进行网络请求的方式有哪些
    这篇文章主要为大家展示了“前端进行网络请求的方式有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“前端进行网络请求的方式有哪些”这篇文章吧。一、前端进行网络请...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作