|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#步骤2读取数据并预处理
# 读取鸢尾花数据集,本数据集共有150个带标签的数据
with open('data/data66466/iris.data') as csv_file:
data = list(csv.reader(csv_file, delimiter=','))
# 共150条数据,将数据集的4个属性作为自变量X。将数据集的3个类别映射为{0, 1,2},作为因变量Y
label_map = {'setosa': 0,'versicolor': 1,'virginica':2 }
# 分别获取数据中的特征值X和标签值Y
X = np.array([[float(x) for x in s[:-1]] for s in data[:cfg.data_size]], np.float32)
Y = np.array([label_map[s[-1]] for s in data[:cfg.data_size]], np.int32)
# 将数据集分为训练集120m条,测试集30条。
train_idx = np.random.choice(cfg.data_size, cfg.train_size, replace=False)
test_idx = np.array(list(set(range(cfg.data_size)) - set(train_idx)))
X_train, Y_train = X[train_idx], Y[train_idx]
X_test, Y_test = X[test_idx], Y[test_idx]
# 使用MindSpore GeneratorDataset接口将numpy.ndarray类型的数据转换为Dataset
def gen_data(X_train, Y_train, epoch_size):
# 生成训练集
XY_train = list(zip(X_train, Y_train))
ds_train = dataset.GeneratorDataset(XY_train, ['x', 'y'])
# 设定数据集大小
# 打乱操作并设定batchsize
ds_train = ds_train.shuffle(buffer_size=cfg.train_size).batch(cfg.batch_size, drop_remainder=True)
# 生成测试集
XY_test = list(zip(X_test, Y_test))
ds_test = dataset.GeneratorDataset(XY_test, ['x', 'y'])
# 设定数据集大小
# 打乱操作并设定batchsize
ds_test = ds_test.shuffle(buffer_size=cfg.test_size).batch(cfg.test_size, drop_remainder=True)
return ds_train, ds_test
报错:
kernel_119/4283392317.py in <module>
9 # 分别获取数据中的特征值X和标签值Y
10 X = np.array([[float(x) for x in s[:-1]] for s in data[:cfg.data_size]], np.float32)
---> 11 Y = np.array([label_map[s[-1]] for s in data[:cfg.data_size]], np.int32)
12
13 # 将数据集分为训练集120m条,测试集30条。
/tmp/ipykernel_119/4283392317.py in <listcomp>(.0)
9 # 分别获取数据中的特征值X和标签值Y
10 X = np.array([[float(x) for x in s[:-1]] for s in data[:cfg.data_size]], np.float32)
---> 11 Y = np.array([label_map[s[-1]] for s in data[:cfg.data_size]], np.int32)
12
13 # 将数据集分为训练集120m条,测试集30条。
KeyError: 'Iris-setosa' |
|