python - 无法在 Amazon SageMaker 上开始训练
问题描述
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'>
为张量。内容:0x7f1559eeaaa0 处的函数 aggregate_csv_batches。考虑将元素转换为支持的类型。
解决方案
没有更多细节很难确定问题所在。您是否在训练作业中使用 SageMaker Tensorflow 图像运行此代码?如果是这样,您是否阅读过这里的文档?https://github.com/aws/sagemaker-python-sdk/blob/master/src/sagemaker/tensorflow/README.rst
仅从错误消息来看,您似乎正在将函数本身(aggregate_csv_batches)传递到需要张量的地方。
如果您可以提供您正在运行的完整代码以及您如何运行它的描述,或者更好的是最小的重现案例,我可以尝试进一步提供帮助。
推荐阅读
- c++ - 类成员的动态分配和值
- excel - Excel 2013 中未定义 Eval
- pointers - 为什么我必须在取消引用之前复制字符串?
- python - 在 qTimeEdit 中找不到 valueChanged
- c# - C# UWP 显示图像
- reactjs - 反应JS。如何在创建的侦听器中删除事件侦听器?
- python - 在 Python 中将 CSV 转换为 XLSX 格式时,“'utf-8' 编解码器无法解码位置 0 中的字节 0xff:无效的起始字节”
- javascript - javascript中导入字符串中间的变量连接
- python - 如何在 python 中以 UTF-8 样式编写和编码我的文件?
- javascript - 移动折线图上的圆圈