def input_csv_fn():
#filenames = np.load(file_io.FileIO(npy_file, 'r'))
Dataset = tf.data.TextLineDataset(csv_file).skip(1).shuffle(buffer_size = 2000000).map(parser_csv, num_parallel_calls = cpu_count())
#Dataset = Dataset.prefetch(2560)
#Dataset = Dataset.shuffle(buffer_size = 1280)
Dataset = Dataset.map(input_parser_plain, num_parallel_calls = cpu_count())
Dataset = Dataset.apply(tf.contrib.data.ignore_errors())
Dataset = Dataset.repeat(epochs)
Dataset = Dataset.batch(batch_size)
Dataset = Dataset.prefetch(batch_size)
iterator = Dataset.make_one_shot_iterator()
feats, labs = iterator.get_next()
return feats, labs
def aggregate_csv_batches():
features = []
labels = []
# add if GPU exists condition here to fit GPU and CPU data processing
if num_gpus > 0:
num_devices = num_gpus
else:
num_devices = 1
for i in range(num_devices):
_features, _labels = input_csv_fn()
features.append(_features)
labels.append(_labels)
return features, labels
return aggregate_csv_batches
上面是用于通过CSV从S3存储桶读取数据集的代码,但是当我尝试在AWS Sagemaker上创建培训作业时,不断出现以下错误
TypeError:无法将类型为
<type 'function'>
的对象转换为 张量内容:函数aggregate_csv_batches位于0x7f1559eeaaa0。 考虑将元素强制转换为受支持的类型。
答案 0 :(得分:0)
没有更多细节很难确定问题。您是否在培训工作中使用SageMaker Tensorflow图像运行此代码?如果是这样,您在这里阅读过文档吗? https://github.com/aws/sagemaker-python-sdk/blob/master/src/sagemaker/tensorflow/README.rst
仅从错误消息中,就好像您正在将函数本身(aggregate_csv_batches)传递到期望张量的地方。
如果您可以提供正在运行的完整代码以及运行方式的说明,甚至可以提供最小限度的维修,我可以尝试提供进一步的帮助。