开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第十天,点击查看活动详情
总结:此文为12月更文计划第十天第十五篇。
这篇文章在前面首先进行一下昨天dataset的学习,还有一点小的知识没有学习完。
tf.data.Dataset.from_tensor_slices是tf提供的接口,可以将array数据转化为tensor张量来进行运算,并且可以直接将数据进行切皮处理。
针对各种格式数据转化为dataset方法: 输入参数是元组的情况:
x = np.array([[1, 2], [3, 4], [5, 6]])
y = np.array(['cat', 'dog', 'fox'])
#输入的参数是元祖的情况下
dataset3 = tf.data.Dataset.from_tensor_slices((x, y))
print(dataset3)
for item_x, item_y in dataset3:
print(item_x, item_y)
输出的结果如下:
输入的参数是字典的情况下:
dataset4 = tf.data.Dataset.from_tensor_slices({"feature1": x,
"label": y})
print(dataset4)
for item in dataset4:
print(item["feature1"], item["label"])
输出的结果如下:
a = tf.data.Dataset.range(1, 6) # ==> [ 1, 2, 3, 4, 5 ]
print(a)
dataset2=a.interleave(lambda x: tf.data.Dataset.from_tensors(x).repeat(6),
cycle_length=2, block_length=4) # ==> [1, 1, 1, 1,
# 2, 2, 2, 2,
# 1, 1,
# 2, 2,
# 3, 3, 3, 3,
# 4, 4, 4, 4,
# 3, 3,
# 4, 4,
# 5, 5, 5, 5,
# 5, 5]
print(dataset2)
for item in dataset2:
print(item)
输出的结果如下:
下面要把特征工程后的数据存为csv文件
#下面要把特征工程后的数据存为csv文件
output_dir = "generate_csv"
if not os.path.exists(output_dir):
os.mkdir(output_dir)
def save_to_csv(output_dir, data, name_prefix,
header=None, n_parts=10):
#生成文件名
path_format = os.path.join(output_dir, "{}_{:02d}.csv")
filenames = []
#把数据分为n_parts部分,写到文件中去
for file_idx, row_indices in enumerate(
np.array_split(np.arange(len(data)), n_parts)):
print(file_idx,row_indices)
#生成子文件名
part_csv = path_format.format(name_prefix, file_idx)
filenames.append(part_csv)
with open(part_csv, "wt", encoding="utf-8") as f:
#先写头部
if header is not None:
f.write(header + "\n")
for row_index in row_indices:
#把字符串化后的每个字符串用逗号拼接起来
f.write(",".join(
[repr(col) for col in data[row_index]]))
f.write('\n')
return filenames
#np.c_把x和y合并起来
train_data = np.c_[x_train_scaled, y_train]
valid_data = np.c_[x_valid_scaled, y_valid]
test_data = np.c_[x_test_scaled, y_test]
#头部,特征,也有目标
header_cols = housing.feature_names + ["MidianHouseValue"]
#把列表变为字符串
header_str = ",".join(header_cols)
print(header_str)
train_filenames = save_to_csv(output_dir, train_data, "train",
header_str, n_parts=20)
valid_filenames = save_to_csv(output_dir, valid_data, "valid",
header_str, n_parts=10)
test_filenames = save_to_csv(output_dir, test_data, "test",
header_str, n_parts=10)
输出的结果如下: