Tensorflow实现训练数据的加载—模型搭建训练保存—模型调用和加载全流程

这篇具有很好参考价值的文章主要介绍了Tensorflow实现训练数据的加载—模型搭建训练保存—模型调用和加载全流程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.Tesorflow训练模型的数据加载

  •  将tensorflow的训练数据数组(矩阵)保存为.npy的数据格式。为后续的模型训练提供便捷的方法。例如如下:
import numpy as np
x=np.random.rand(100,7,9)#x是训练数据,这有100条数据,每一条有7*9个特征
np.save(r"C:\结果\y_train_feature.npy",feature)#feature是训练数据矩阵
  •  加载.npy训练数据和测试数组(矩阵),加载后需要调整数据的形状以满足设计模型的输入输出需求,不然无法训练模型。
import numpy as np

 '''加载训练和测试数据'''
y_train_feature=np.load('C:\结果\y_train_feature.npy')
y_test_feature=np.load('C:\结果\y_test_feature.npy')

'''加载训练和测试的标签'''
y_train=np.load('C:\结果\y_train.npy')
y_test=np.load('C:\结果\y_test.npy')
    
'''调整数据为模型输入输出所需要的形状'''
y_test_feature=y_test_feature.reshape(-1,7,129)
y_train_feature=y_train_feature.reshape(-1,7,129)
y_test=y_test.reshape(-1,129)
y_train=y_train.reshape(-1,129)
  

 2.Tensorflow模型搭建的训练和保存

  • 这里可以采用自定义层和tensorflow的API搭建网络模型,以API为例子搭建多层LSTM网络模型用于训练。
import tensorflow as tf
from tensorflow import  keras
from keras.models import  Model
from keras.layers import Input, MaxPooling1D,Dense, Conv1D, Conv2D, Dropout, Flatten,\
 BatchNormalization, Reshape, Activation, concatenate,SeparableConv2D,LSTM,GRU,Conv2DTranspose,SimpleRNN
from keras.layers.pooling import MaxPooling2D


 '''模型输入'''
input_feature = Input(shape=y_train_feature.shape[1:], name='input_feature')

  '''模型搭建LSTM'''
fc1=LSTM(512,return_sequences=True)(input_feature)
fc2=LSTM(512,return_sequences=True)(fc1)
fc3=LSTM(512,return_sequences=True)(fc2)
fc4=LSTM(512)(fc3)
'''全连接的输出层'''
output_2 = Dense(129,activation='linear',kernel_initializer='random_uniform',\
                     bias_initializer='random_uniform',name='output1')(fc4)
   """以Model来组合整个网络"""
model = Model(inputs= input_feature, outputs=output_2)
model.summary()#察看网络架构
  •  tensorflow模型的训练,优化器的选择,损失函数的设置,批量大小,学习率大小,训练epoch次数,最优模型的保存等操作。
adam=Adam(lr=0.0001,decay=1e-6)#优化器的选择
model.compile(optimizer=adam,
          loss='mae',#均方误差
          metrics=['mae'])#平均绝对误差
'''训练网络'''

earlyStopping = callbacks.EarlyStopping(monitor='val_mae',patience=5,mode='min')

#保存模型的路径
filepath = "weights-improvement-{epoch:02d}-{val_mae:.2f}.h5"


#在每个训练期(epoch)后保存模型
#period:检查点之间的间隔(epoch数)
checkpoint = callbacks.ModelCheckpoint(filepath, monitor='val_mae', verbose=1, save_best_only=True,
                            mode='min',save_weights_only=False,period=1)

print('Training------')
   
model.fit(y_train_feature,y_train,epochs=800,batch_size=128,verbose=1,validation_data=(y_test_feature,y_test),shuffle=True,callbacks=[earlyStopping,checkpoint])

model.save(r'new_models_ripleinputV7.h5')

 3.Tensorflow模型的调用

  • 训练好并保存后的模型,调用时可以采用 load_model() 方法获得保存后的模型。
from keras.models import load_model
import numpy as np

model = tf.keras.models.load_model(r"保存模型的路径\LSTM.h5")
'''输入数据获得模型输出结果'''
output=model.predict(input_feature)#input_feature形状需要满足模型输入的形状要求

'''将张量形式的输出转化为numpy数组的形式'''
output=np.array(output)

4.整体代码实现

  • tensorflow网络模型的训练完整实现(API网络搭建)的形式。自定义的网络模型可采用同样的方法训练模型。
# -*- coding: utf-8 -*-
"""
Created on Sat Sep 11 19:47:21 2021

@author: 茶墨先生
"""

'''导入需要的包'''
import tensorflow as tf
from tensorflow import  keras
from tensorflow.keras import  layers,Sequential,datasets
from keras import regularizers,callbacks 
tf.compat.v1.disable_eager_execution()
from keras import backend as K
from keras.datasets import mnist
from keras.optimizers import Adam
import numpy as np
from keras.models import  Model
from keras.layers import Input, MaxPooling1D,Dense, Conv1D, Conv2D, Dropout, Flatten,\
 BatchNormalization, Reshape, Activation, concatenate,SeparableConv2D,LSTM,GRU,Conv2DTranspose,SimpleRNN
from keras.layers.pooling import MaxPooling2D
  
#自定义模型
'''训练'''
def Train():
    '''加载训练数据'''
    y_train_feature=np.load('C:\结果\y_train_speech_feature.npy')
    y_test_feature=np.load('C:\结果\y_test_speech_feature.npy')
    y_train=np.load('C:\结果\y_train.npy')
    y_test=np.load('C:\结果\y_test.npy')
    
    y_test_feature=y_test_feature.reshape(-1,7,129)
    y_train_feature=y_train_feature.reshape(-1,7,129)
    y_test=y_test.reshape(-1,129)
    y_train=y_train.reshape(-1,129)
    print("y_train: ",y_train.shape)
    print("y_train_speech_feature: ", y_train_feature.shape)
    
    
    '''构建需要的网络模型'''
    input_feature = Input(shape=y_train_feature.shape[1:], name='input_feature')
    fc1=LSTM(512,return_sequences=True)(input_feature)
    fc2=LSTM(512,return_sequences=True)(fc1)
    fc3=LSTM(512,return_sequences=True)(fc2)
    fc4=LSTM(512)(fc3)
    output_2 = Dense(129,activation='linear',kernel_initializer='random_uniform',\
                     bias_initializer='random_uniform',name='output1')(fc4)
    """以Model来组合整个网络"""
    model = Model(inputs= input_feature, outputs=output_2)
    model.summary()
    
    adam=Adam(lr=0.0001,decay=1e-6)
    model.compile(optimizer=adam,
              loss='mae',#均方误差
              metrics=['mae'])#平均绝对误差
    '''训练网络'''
    
    earlyStopping = callbacks.EarlyStopping(monitor='val_mae',patience=5,mode='min')
    
    #保存模型的路径
    filepath = "weights-improvement-{epoch:02d}-{val_mae:.2f}.h5"
    
    
    #在每个训练期(epoch)后保存模型
    #period:检查点之间的间隔(epoch数)
    checkpoint = callbacks.ModelCheckpoint(filepath, monitor='val_mae', verbose=1, save_best_only=True,
                                mode='min',save_weights_only=False,period=1)
    
    print('Training------')
   
    model.fit(y_train_feature,y_train,epochs=800,batch_size=128,verbose=1,validation_data=(y_test_feature,y_test),shuffle=True,callbacks=[earlyStopping,checkpoint])
    
    model.save(r'new_models_ripleinputV7.h5')

'''主函数调用'''
if __name__ =='__main__':
    
    '''训练'''
    Train()


    



读书,生活,旅行。感谢关注和支持!文章来源地址https://www.toymoban.com/news/detail-742708.html

到了这里,关于Tensorflow实现训练数据的加载—模型搭建训练保存—模型调用和加载全流程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • pytorch11:模型加载与保存、finetune迁移训练

    往期回顾 pytorch01:概念、张量操作、线性回归与逻辑回归 pytorch02:数据读取DataLoader与Dataset、数据预处理transform pytorch03:transforms常见数据增强操作 pytorch04:网络模型创建 pytorch05:卷积、池化、激活 pytorch06:权重初始化 pytorch07:损失函数与优化器 pytorch08:学习率调整策略

    2024年02月01日
    浏览(47)
  • 人工智能(pytorch)搭建模型18-含有注意力机制的CoAtNet模型的搭建,加载数据进行模型训练

    大家好,我是微学AI,今天我给大家介绍一下人工智能(pytorch)搭建模型18-pytorch搭建有注意力机制的CoAtNet模型模型,加载数据进行模型训练。本文我们将详细介绍CoAtNet模型的原理,并通过一个基于PyTorch框架的实例,展示如何加载数据,训练CoAtNet模型,从操作上理解该模型。

    2024年02月16日
    浏览(62)
  • 【Tensorflow】模型如何加载HDF文件数据集?

    如果每个样本都被保存为一个单独的 HDF5 文件,可以使用 `tf.data.Dataset.list_files` 函数来创建一个文件名数据集,然后使用 `tf.data.Dataset.interleave` 函数来并行读取多个文件。 下面的示例展示了如何从多个 HDF5 文件中读取数据并创建一个 `tf.data.Dataset` 对象: import h5py import tenso

    2023年04月24日
    浏览(32)
  • bert模型训练,加载保存的模型Can‘t load tokenizer for ‘/content/drive/MyDrive/Colab Notebooks/classification_mode

    哈喽! 我用Bert预测评论分数,训练好模型保存到文件夹后,再一次加载它出现了上述错误,不太明白为什么,请教各位! 这是第二次训练这模型,也就是说我训练了一次之后,再把第一次训练的模型用新的数据训练,提高它的精确度,是可以的把,为什么第一次训练没有报

    2024年02月11日
    浏览(46)
  • 音频数据处理+模型训练保存+Android模型移植

    音频数据处理+模型训练保存+Android模型移植 一个epoch , 表示: 所有的数据送入网络中, 完成了一次前向计算 + 反向传播的过程 把数据准备好,开始跑实验 1.分割数据集 scirpt.walk_file(path,out_path) BirdsSong-2s-20spec 2.生成csv(script.py) 3.将wav音频文件中的音频浮点序列特征提出出来

    2024年01月21日
    浏览(63)
  • TensorFlow进行MNIST数据集手写数字识别,保存模型并且进行外部手写图片测试

    首先,你已经配置好Anaconda3的环境,下载了TensorFlow模块,并且会使用jupyter了,那么接下来就是MNIST实验步骤。 数据集官网下载: MNIST handwritten digit database, Yann LeCun, Corinna Cortes and Chris Burges http://yann.lecun.com/exdb/mnist/   将上面四个全部下载,都是数据集,其中前两个是训练集,

    2024年02月08日
    浏览(39)
  • TensorFlow学习:使用官方模型和自己的训练数据进行图片分类

    教程来源:清华大佬重讲机器视觉!TensorFlow+Opencv:深度学习机器视觉图像处理实战教程,物体检测/缺陷检测/图像识别 注: 这个教程与官网教程有些区别,教程里的api比较旧,核心思想是没有变化的。 上一篇文章 TensorFlow学习:使用官方模型进行图像分类、使用自己的数据

    2024年02月08日
    浏览(45)
  • Mediapipe实战——导出身体节点坐标并用TensorFlow搭建LSTM网络来训练自己的手势检测模型再部署到树莓派4B

    一、前言   在YouTube上看到up主——Nicholas Renotte的相关教程,觉得非常有用。使用他的方法,我训练了能够检测四种手势的模型,在这里和大家分享一下。   附上该up主的视频链接Sign Language Detection using ACTION RECOGNITION with Python | LSTM Deep Learning Model   视频的代码链接htt

    2024年02月02日
    浏览(39)
  • TensorFlow2进行CIFAR-10数据集动物识别,保存模型并且进行外部下载图片测试

    首先,你已经安装好anaconda3、创建好环境、下载好TensorFlow2模块并且下载好jupyter了,那么我们就直接打开jupyter开始进行CIFAR10数据集的训练。 第一步:下载CIFAR10数据集 下载网址:http://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz 将数据集下载到合适的路径,方便模型训练的时候调用

    2024年02月08日
    浏览(37)
  • tensorflow2模型保存和恢复

    有两种方法可以保存模型: ·使用检查点,一种简单的在硬盘上保存变量的方法 ·使用SavedModel,模型结构及检查点 检查点不包含任何关于模型自身的描述:它们只是一种简单的存储参数并能让开发者正确恢复它的方法。 SavedModel格式在保存参数值的基础上加上了计算过程的序

    2024年02月11日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包