TensorFlow学习笔记--(4)神经网络模型-数据集预处理

2023-12-14 04:56:11

神经网络初步

以scikit-leran鸢尾花为例

通过scikit-learn库自带的鸢尾花数据集 来测试数据的读入

from sklearn import datasets
from pandas import DataFrame
import pandas as pd

x_data = datasets.load_iris().data  # .data返回iris数据集所有输入特征
y_data = datasets.load_iris().target  # .target返回iris数据集所有标签
print("x_data from datasets: \n", x_data)
print("y_data from datasets: \n", y_data)

x_data = DataFrame(x_data, columns=['花萼长度', '花萼宽度', '花瓣长度', '花瓣宽度']) # 为表格增加行索引(左侧)和列标签(上方)
pd.set_option('display.unicode.east_asian_width', True)  # 设置列名对齐
print("x_data add index: \n", x_data)

x_data['类别'] = y_data  # 新加一列,列标签为‘类别’,数据为y_data
print("x_data add a column: \n", x_data)

#类型维度不确定时,建议用print函数打印出来确认效果

使用pandas包中的dataframe类来完成数据的表格输出

可以自定义行,列的索引名

打印结果:

image-20231209155353190

网络构造流程

将数据集完成分类:训练集-测试集 并将输入特征与标签进行配对

每次读入一个batch进行训练 嵌套循环迭代 显示当前的loss与acc

image-20231209155641624

数据集预处理

每次喂入神经网络模型的数据单位为batch

每个batch包含的数据组数可以自定义

from sklearn import datasets
from pandas import DataFrame
import pandas as pd
import numpy as np

#数据集的读入:
x_data = datasets.load_iris().data  # .data返回iris数据集所有输入特征
y_data = datasets.load_iris().target  # .target返回iris数据集所有标签


# 随机打乱数据:
# seed: 随机数种子,是一个整数,当设置之后,每次生成的随机数都一样
np.random.seed(116)  # 使用相同的seed,保证输入特征和标签一一对应
np.random.shuffle(x_data) #将输入特征以seed进行随机打乱
np.random.seed(116)
np.random.shuffle(y_data) #将数据标签以seed进行随机打乱
tf.random.set_seed(116)

#将数据集分为训练集和测试集:
#数据集和测试集必须没有交集
x_train = x_data[:-30] #训练集为前120行
y_train = y_data[:-30] 
x_test = x_data[-30:]  #测试集为后30行
y_test = y_data[-30:]


#将特征与标签进行配对,并且每次只喂入模型一小撮数据
train_db = tf.data.Dataset.from_tensor_slices((x_train, y_train))
train_db = train_db.batch(32)

test_db = tf.data.Dataset.from_tensor_slices((x_test, y_test))
test_db = test_db.batch(32)

文章来源:https://blog.csdn.net/Postlude/article/details/134985214
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。