首页 文章

使用gcloud计算单元而不是本地计算单元时,未正确保存Tensorflow检查点

提问于
浏览
1

当我使用谷歌 Cloud 桶作为数据源和目的地进行本地培训时:

gcloud ml-engine local train --module-name trainer.task_v2s --package-path trainer/

我获得了正常的结果,检查点在20个seps中正确保存,因为我的数据集是400个示例,我使用20作为批量大小:400/20 = 20个步骤= 1个Epoch . 这些文件保存在我的模型目录中

  • model.ckpt-0.data-00000-of-00001

  • model.ckpt-0.index

  • model.ckpt-0.meta

  • model.ckpt-20.data-00000-of-00001

  • model.ckpt-20.index

  • model.ckpt-20.meta

此外,我的本地GPU正确使用:

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1018      G   /usr/lib/xorg/Xorg                           212MiB |
|    0      1889      G   compiz                                        69MiB |
|    0      5484      C   ...rtualenvs/my_project/bin/python  2577MiB         |
+-----------------------------------------------------------------------------+

当我现在尝试使用gcloud计算单元时:

gcloud ml-engine jobs submit training my_job_name \
--module-name trainer.task_v2s --package-path trainer/ \
--staging-bucket gs://my-bucket --region europe-west1 \
--scale-tier BASIC_GPU --runtime-version 1.8 --python-version 3.5

保存检查点需要大约相同的时间,但它会以1步增量保存,尽管数据源没有更改 . 损失也在减慢,因为只有一个例子会被训练 . 这是文件的外观:

  • model.ckpt-0.data-00000-of-00001

  • model.ckpt-0.index

  • model.ckpt-0.meta

  • model.ckpt-1.data-00000-of-00001

  • model.ckpt-1.index

  • model.ckpt-1.meta

GPU根本没有参与:

+-----------------------------------------------------------------------------+  
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|  No running processes found                                                 |      
+-----------------------------------------------------------------------------+

我正在使用没有配置clusterpec的自定义估算器,因为我假设您只需要分布式camputing,我的run_config如下所示:

使用config:{'_ master':'','_ num_ps_replicas':0,'_ session_config':无,'_ task_id':0,'_ model_dir':'gs:// my_bucket / model_dir','_ _ save_checkpoints_steps':无, 'tf_random_seed':无,' task_type':'master','_ keep_checkpoint_max':5,'_ evaluation_master':'','_ device_fn':无,'_ _ save_checkpoints_secs':600,'_ save_summary_steps':100,'_ cluster_pec':,,, 'log_step_count_steps':100,' is_chief':是的,'_ global_id_in_cluster':0,'_ num_worker_replicas':1,'_ service':无,'_ keep_checkpoint_every_n_hours':10000,'_ train_distribute':无}

从日志中我还可以看到TF_CONFIG环境变量:

{'environment':'cloud','cluster':{'master':['127.0.0.1:2222']},'job':{'python_version':'3.5','run_on_raw_vm':是的,' package_uris':['gs://my-bucket/my-project10/27cb2041a4ae5a14c18d6e7f8622d9c20789e3294079ad58ab5211d8e09a2669/MyProject-0.9.tar.gz'],'runtime_version':'1.8','python_module':'trainer.task_v2s','scale_tier' :'BASIC_GPU','region':'europe-west1'},'task':{'cloud':'qc6f9ce45ab3ea3e9-ml','type':'master','index':0}}

我的猜测是我需要配置我没有的东西,但我不知道是什么 . 我在开始时也会收到一些警告,但我认为他们没有与此有关:

google-cloud-vision 0.29.0的要求请求<3.0dev,> = 2.18.4,但是你的请求2.13.0是不兼容的 .

1 回答

  • 0

    我刚刚发现了我的错误:我需要在setup.py中输入tensorflow-gpu而不是tensorflow . 正如rhaertel80所说,更好的是一起省略张量流 .

相关问题