1、数据和问题描述
本文采用Tensorflow实现全连接神经网络,对鸢尾花数据进行分类。首先加载数据集,代码如下:
import tensorflow as tf
from sklearn import datasets
import numpy as np
# 读取数据
x_data = datasets.load_iris().data
y_data = datasets.load_iris().target
数据集的特征包含4列,如下图所示:
标签列的取值为(0,1,2)三种,是一个多分类问题。
2、数据预处理
将数据集打乱顺序,并划分为训练集和测试集,代码如下:
# 用相同的随机种子打乱数据集
np.random.seed(116)
np.random.shuffle(x_data)
np.random.seed(116)
np.random.shuffle(y_data)
tf.random.set_seed(116)
x_train = x_data[:-30]
y_train = y_data[:-30]
x_test = x_data[-30:]
y_test = y_data[-30:]
这里查看一下 x_train 的数据类型:
x_train.dtype
# dtype('float64') #输出的类型是float64
为了避免后续进行计算的时候出现数据类型不一致的情况,这里对 x_train、x_test 进行类型转换:
# 转换x的数据类型,否则后面矩阵相乘时会因数据类型不一致报错
x_train = tf.cast(x_train, tf.float32)
x_test = tf.cast(x_test, tf.float32