vue之v-model基本使用
690
2022-05-28
當程序代碼中發現與華為云OBS互聯出現功能問題或者是出現性能低問題時,可以借助MoXing的接口去規避。
以一個客戶案例來說明,用戶代碼大致如下:
import?tensorflow?as?tf ... summary_writer?=?tf.summary.FileWriter('obs://bucket/train_url/') with?tf.train.MonitoredTrainingSession()?as?sess: ??for?step?in?range(10000): ????if?step?%?log_step?==?0: ??????_,?summary?=?sess.run([train_op,?summary_op]) ??????summary_writer.add_summary(summary,?step) ????else: ??????sess.run(train_op)
上述代碼的作用是每隔log_step,追加一些summary到OBS。用戶的summary非常大,可能會到4GB以上,這里使用了TensorFlow直接連接OBS,并且不停的往OBS上的一個大文件追加寫,性能會越來越慢。
解決思路:將一個summary大文件分片成多個小文件,每次追加的時候保證原始文件不會太大,并且直接保存到本地,定期利用mox接口上傳到OBS
解決思路:將一個summary大文件分片成多個小文件,每次追加的時候保證原始文件不會太大,并且直接保存到本地,定期利用mox接口上傳到OBS
參考代碼:
import?tensorflow?as?tf import?moxing?as?mox ... #?先保存到本地summary_writer?=?tf.summary.FileWriter('/cache/local_summary/') with?tf.train.MonitoredTrainingSession()?as?sess: ??for?step?in?range(10000): ????if?step?%?log_step?==?0: ??????_,?summary?=?sess.run([train_op,?summary_op]) ??????summary_writer.add_summary(summary,?step) ????else: ??????sess.run(train_op) ????#?每隔1000個step,把summary強制寫到磁盤,并且重新創建一個新的writer,強制移動到下一個文件分片 ????#?在此場景中,一共10000步,假設log_step為100 ????#?相當于每隔100步保存一次summary到本地,每隔1000步將summary寫回磁盤,然后上傳到OBS ????#?并且新建一個文件繼續記錄接下來的summary。也就是說最后會有10個events文件來保存summary ????if?step?%?1000?==?0: ??????summary_writer.flush() ??????summary_writer.close() ??????mox.file.sync_copy('/cache/local_summary/',?'obs://bucket/train_url/') ??????summary_writer?=?tf.summary.FileWriter('/cache/local_summary/') ?????? #?最后上傳遺留的所有文件 summary_writer.flush() summary_writer.close() mox.file.sync_copy('/cache/local_summary/',?'obs://bucket/train_url/')
OBS ModelArts
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。