【tensorflow】连续输入的线性回归模型训练代码

简介:   get_data函数用于生成随机的训练和验证数据集。首先使用np.random.rand生成一个形状为(10000, 10)的随机数据集,来模拟10维的连续输入,然后使用StandardScaler对数据进行标准化。再生成一个(10000,1)的target,表示最终拟合的目标分数。最后使用train_test_split函数将数据集划分为训练集和验证集。

【tensorflow】连续输入的感知机模型训练


全部代码 - 复制即用

训练输出

代码介绍


 查看本系列三种模型写法:


 【tensorflow】连续输入的线性回归模型训练代码

 【tensorflow】连续输入的神经网络模型训练代码

 【tensorflow】连续输入+离散输入的神经网络模型训练代码


全部代码 - 复制即用


from sklearn.model_selection import train_test_split
import tensorflow as tf
import numpy as np
from keras import Input, Model, Sequential
from keras.layers import Dense, concatenate, Embedding, LSTM
from sklearn.preprocessing import StandardScaler
from tensorflow import keras
def get_data():
    # 设置随机种子,以确保结果可复现(可选)
    np.random.seed(0)
    # 生成随机数据
    data = np.random.rand(10000, 10)
    # 正则化数据
    scaler = StandardScaler()
    data = scaler.fit_transform(data)
    # 生成随机数据
    target = np.random.rand(10000, 1)
    return train_test_split(data, target, test_size=0.1, random_state=42)
data_train, data_val, target_train, target_val = get_data()
# 迭代轮次
train_epochs = 10
# 学习率
learning_rate = 0.0001
# 批大小
batch_size = 200
# 定义模型
with tf.name_scope("Model"):
    x = tf.placeholder(tf.float32, [None,10]) # 10个特征数据(10列)
    y = tf.placeholder(tf.float32, [None, 1])
    d = tf.Variable(tf.random_normal([10,10], stddev=0.01))
    w = tf.Variable(tf.random_normal([10,1], stddev=0.01))
    # b 初始化值为 1.0
    a = tf.Variable(1.0)
    b = tf.Variable(1.0)
    k = tf.matmul(x, d) + a
    pred = tf.matmul(k, w) + b
#损失函数
loss_function = tf.reduce_mean(tf.square(y-pred))
# 创建优化器
optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(loss_function)
#3生成会话,训练STEPS轮
with tf.Session() as sess:
    # 初始化参数
    init = tf.global_variables_initializer()
    sess.run(init)
    # 训练模型
    STEPS = 1000 #3000
    for i in range(STEPS):
        start = (i*batch_size) % 4
        end =  start + batch_size
        #sess.run(optimizer, feed_dict={x: X[start:end], y_: Y_[start:end]})
        if i % 100 == 0:
            total_loss = sess.run(loss_function, feed_dict={x: data_train, y: target_train})
            print("After %d training step(s), loss_mse on all data is %g" % (i, total_loss))            
        sess.run(optimizer, feed_dict={x: data_val, y: target_val})


训练输出


  模型训练过程中的输出如下:


image.png


代码介绍


 get_data函数用于生成随机的训练和验证数据集。首先使用np.random.rand生成一个形状为(10000, 10)的随机数据集,来模拟10维的连续输入,然后使用StandardScaler对数据进行标准化。再生成一个(10000,1)的target,表示最终拟合的目标分数。最后使用train_test_split函数将数据集划分为训练集和验证集。


 由于target是浮点数,所以我们这个任务就是回归任务了。


 在定义模型时,使用tf.placeholder定义占位符,用于传入输入数据和目标数据。定义变量d、w、a和b作为模型的权重和偏置。使用tf.matmul进行矩阵乘法和加法操作,得到预测值pred。


可以尝试改改模型,换一换激活函数。


 定义损失函数为均方差(MSE),使用梯度下降优化器进行参数更新。


 在tf.Session中创建会话,通过tf.global_variables_initializer初始化模型的变量。然后进行训练,迭代STEPS轮。在每一轮训练中,通过sess.run运行优化器进行参数更新,并计算训练集上的损失。每训练100轮,打印出当前轮次的损失值。


相关文章
|
2月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
深度学习之格式转换笔记(三):keras(.hdf5)模型转TensorFlow(.pb) 转TensorRT(.uff)格式
将Keras训练好的.hdf5模型转换为TensorFlow的.pb模型,然后再转换为TensorRT支持的.uff格式,并提供了转换代码和测试步骤。
99 3
深度学习之格式转换笔记(三):keras(.hdf5)模型转TensorFlow(.pb) 转TensorRT(.uff)格式
|
2月前
|
并行计算 Shell TensorFlow
Tensorflow-GPU训练MTCNN出现错误-Could not create cudnn handle: CUDNN_STATUS_NOT_INITIALIZED
在使用TensorFlow-GPU训练MTCNN时,如果遇到“Could not create cudnn handle: CUDNN_STATUS_NOT_INITIALIZED”错误,通常是由于TensorFlow、CUDA和cuDNN版本不兼容或显存分配问题导致的,可以通过安装匹配的版本或在代码中设置动态显存分配来解决。
53 1
Tensorflow-GPU训练MTCNN出现错误-Could not create cudnn handle: CUDNN_STATUS_NOT_INITIALIZED
|
2月前
|
数据采集 TensorFlow 算法框架/工具
【大作业-03】手把手教你用tensorflow2.3训练自己的分类数据集
本教程详细介绍了如何使用TensorFlow 2.3训练自定义图像分类数据集,涵盖数据集收集、整理、划分及模型训练与测试全过程。提供完整代码示例及图形界面应用开发指导,适合初学者快速上手。[教程链接](https://www.bilibili.com/video/BV1rX4y1A7N8/),配套视频更易理解。
49 0
【大作业-03】手把手教你用tensorflow2.3训练自己的分类数据集
|
24天前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
67 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
24天前
|
机器学习/深度学习 人工智能 算法
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
蔬菜识别系统,本系统使用Python作为主要编程语言,通过收集了8种常见的蔬菜图像数据集('土豆', '大白菜', '大葱', '莲藕', '菠菜', '西红柿', '韭菜', '黄瓜'),然后基于TensorFlow搭建卷积神经网络算法模型,通过多轮迭代训练最后得到一个识别精度较高的模型文件。在使用Django开发web网页端操作界面,实现用户上传一张蔬菜图片识别其名称。
67 0
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
|
26天前
|
机器学习/深度学习 数据采集 人工智能
探索机器学习:从理论到Python代码实践
【10月更文挑战第36天】本文将深入浅出地介绍机器学习的基本概念、主要算法及其在Python中的实现。我们将通过实际案例,展示如何使用scikit-learn库进行数据预处理、模型选择和参数调优。无论你是初学者还是有一定基础的开发者,都能从中获得启发和实践指导。
41 2
|
29天前
|
机器学习/深度学习 数据采集 人工智能
揭秘AI:机器学习的魔法与代码
【10月更文挑战第33天】本文将带你走进AI的世界,了解机器学习的原理和应用。我们将通过Python代码示例,展示如何实现一个简单的线性回归模型。无论你是AI新手还是有经验的开发者,这篇文章都会给你带来新的启示。让我们一起探索AI的奥秘吧!
|
1月前
|
机器学习/深度学习 TensorFlow API
机器学习实战:TensorFlow在图像识别中的应用探索
【10月更文挑战第28天】随着深度学习技术的发展,图像识别取得了显著进步。TensorFlow作为Google开源的机器学习框架,凭借其强大的功能和灵活的API,在图像识别任务中广泛应用。本文通过实战案例,探讨TensorFlow在图像识别中的优势与挑战,展示如何使用TensorFlow构建和训练卷积神经网络(CNN),并评估模型的性能。尽管面临学习曲线和资源消耗等挑战,TensorFlow仍展现出广阔的应用前景。
56 5
|
2月前
|
数据采集 移动开发 数据可视化
模型预测笔记(一):数据清洗分析及可视化、模型搭建、模型训练和预测代码一体化和对应结果展示(可作为baseline)
这篇文章介绍了数据清洗、分析、可视化、模型搭建、训练和预测的全过程,包括缺失值处理、异常值处理、特征选择、数据归一化等关键步骤,并展示了模型融合技术。
86 1
模型预测笔记(一):数据清洗分析及可视化、模型搭建、模型训练和预测代码一体化和对应结果展示(可作为baseline)
|
1月前
|
机器学习/深度学习 人工智能 算法
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
车辆车型识别,使用Python作为主要编程语言,通过收集多种车辆车型图像数据集,然后基于TensorFlow搭建卷积网络算法模型,并对数据集进行训练,最后得到一个识别精度较高的模型文件。再基于Django搭建web网页端操作界面,实现用户上传一张车辆图片识别其类型。
79 0
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型