TensorFlow训练网络的方式有哪些
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章给大家分享的是有关TensorFlow训练网络的方式有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。TensorFlow训练网络有两种方式,一种是基于tenso
千家信息网最后更新 2026年11月01日TensorFlow训练网络的方式有哪些
这篇文章给大家分享的是有关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训练网络的方式有哪些"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
训练
数据
模型
方式
图像
批次
迭代
权重
精度
误差
网络
内容
函数
尺寸
形式
更多
用户
篇文章
结局
维度
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网与科技
互联网是第几次科技革命的成果
互联网科技公司的优势
盈实互联网科技
互联网科技媒体
迪茉互联网科技
华中科技大学互联网
老年人脱离互联网科技的作文
佳云科技和互联网广告
智腾互联网科技有限公司
广州新华互联网科技学校电竞方面
烟台灵鸽互联网科技有限公司
区块链结合互联网科技
华中科技大学互联网的牛人
浙南科技城互联网大厦招聘
从那以后互联网科技有限公司
东营紫格互联网科技
互联网领先科技活动
易租星互联网科技有限公司
科技互联网专业工作会议发言稿
互联网科技保险
深圳互联网络科技有限公司
互联网科技咨询
丰台科技园 互联网公司
恒银科技与互联网金融
央行互联网金融科技公司
互联网企业和科技型企业
广州富喜互联网络科技
产业互联网科技服务公司
银川新华互联网科技学校是国营吗