前几天在做kaggle的比赛——The 2nd YouTube-8M Video Understanding Challenge时,使用的是gcp的ML Engine来做的模型的训练和结果的预测,在使用bucket中的文件时,我们直接的思路就是用os.path系列命令来判断文件的有无并完成文件操作和读取。然而在实际操作过程中,发现文件并没有按照预想进行读取和写入。
查找相关资料后,发现使用TensorFlow里面的io命令可以解决这一问题:
from tensorflow.python.lib.io import file_io
#从ML Engine服务器本地中复制文件到bucket里
def copy_file_to_gcp(job_dir, file_path):
with file_io.FileIO(file_path, mode='rb') as input_f:
with file_io.FileIO(os.path.join(job_dir, file_path), mode='w+') as output_f:
output_f.write(input_f.read())
#从bucket里复制文件到ML Engine服务器本地
def copy_gcp_to_file(job_dir,file_name):
with file_io.FileIO(os.path.join(job_dir, file_path), mode='rb') as input_f:
with file_io.FileIO(file_path, mode='w+') as output_f:
output_f.write(input_f.read())