前幾天在做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())