我生成了训练数据,都是原始值,我想在读取TFRecord数据集时规范化数据。第一步,我从训练数据中读取所有原始值,循环通过每个iter来连接数组,使用minmaxscaler来拟合训练数据并得到scaler
第二步,我编写一个规范化函数来转换所有数据,代码如下:
def normalizeY(inputs, targets):
targets['Y1'] = scaler_Y1.transform(tf.cast(targets['Y1'], tf.float32))
targets['Y2'] = scaler_Y2.transform(tf.cast(targets['Y2'], tf.float32))
targets['Y3'] = scaler_Y3.transform(tf.cast(targets['Y3'], tf.float32))
return inputs, targets
dataset = tf.data.TFRecordDataset(filenames)
dataset = dataset.map(_parse_function, num_parallel_calls=AUTOTUNE)
dataset = dataset.map(normalizeY)
dataset = dataset.prefetch(AUTOTUNE)
dataset = dataset.batch(batch_size)
但是步骤dataset.map(normalizeY)
给出了错误:TypeError: __array__() takes 1 positional argument but 2 were given
我想出了一个解决方案,用最小/最大值来规范化,而不是用定标器来变换
相关问题 更多 >
编程相关推荐