首页 > 解决方案 > 在 AWS sagemaker 上以脚本模式训练自动编码器

问题描述

我想使用 keras 训练自动编码器,其中 X_train 是 mxn 矩阵,y_train 也是 mxn 矩阵。例如

X_train = np.array(([1, 2], 
               [3, 4]))
y_train = np.array(([5, 6], 
               [7, 8]))

我连接两个矩阵train_set并保存到一个文件中training.npy

train_set = np.concatenate([X_train, y_train], axis=1)
print(train_set)
array([[1, 2, 5, 6],
       [3, 4, 7, 8]])

后来我把它保存到S3

training_path_input = sess.upload_data('/tmp/training.npy', key_prefix=prefix+'/training')

现在当我适合模型时

model.fit({'train': training_path_input })

我想知道估计器如何找到索引X_trainy_train因为y_train它不像其他情况那样是一个向量。有没有办法在fit()方法中指定这个。

或者有没有其他方法可以做到这一点?

标签: kerasamazon-sagemakerautoencoder

解决方案


fit 方法做了两件事:(1)将您的数据从training_path_input(在 S3 上)复制到/opt/ml/input/data/<channel>SageMaker 训练实例(/opt/ml/input/data/train在您的情况下)和(2)使用您指定的任何超参数启动代码。您需要确保您的训练代码知道如何读取您要复制到机器的文件类型。您的培训代码必须包含将在本地读取复制文件的代码。


推荐阅读