首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GPU google云ML引擎的慢速训练

GPU google云ML引擎的慢速训练
EN

Stack Overflow用户
提问于 2018-03-08 09:09:45
回答 1查看 674关注 0票数 0

对不起,如果我的问题如此草率,但我花了很多时间试图理解问题的原因,但我不能这样做,在这里

我在google云ML上训练tacotron模型,我以前在floyd hub上训练过它,它非常快,所以我将我的项目配置为能够在google上运行

这是我对我的项目所做的主要改变。

原始

代码语言:javascript
复制
with open(metadata_filename, encoding='utf-8') as f:
  self._metadata = [line.strip().split('|') for line in f]
  hours = sum((int(x[2]) for x in self._metadata)) * hparams.frame_shift_ms / (3600 * 1000)
  log('Loaded metadata for %d examples (%.2f hours)' % (len(self._metadata), hours))

我的配置

代码语言:javascript
复制
with file_io.FileIO(metadata_filename, 'r') as f:
     self._metadata = [line.strip().split('|') for line in f]
     hours = sum((int(x[2]) for x in self._metadata)) * hparams.frame_shift_ms / (3600 * 1000)
     log('Loaded metadata for %d examples (%.2f hours)' % (len(self._metadata), hours))

原始

代码语言:javascript
复制
def _get_next_example(self):
    '''Loads a single example (input, mel_target, linear_target, cost) from disk'''
    if self._offset >= len(self._metadata):
      self._offset = 0
      random.shuffle(self._metadata)
    meta = self._metadata[self._offset]
    self._offset += 1

    text = meta[3]
    if self._cmudict and random.random() < _p_cmudict:
      text = ' '.join([self._maybe_get_arpabet(word) for word in text.split(' ')])

    input_data = np.asarray(text_to_sequence(text, self._cleaner_names), dtype=np.int32)
    linear_target = np.load(os.path.join(self._datadir, meta[0]))
    mel_target = np.load(os.path.join(self._datadir, meta[1]))
    return (input_data, mel_target, linear_target, len(linear_target))

我的配置

代码语言:javascript
复制
 def _get_next_example(self):

    '''Loads a single example (input, mel_target, linear_target, cost) from disk'''
    if self._offset >= len(self._metadata):
        self._offset = 0
        random.shuffle(self._metadata)
    meta = self._metadata[self._offset]
    self._offset += 1

    text = meta[3]
    if self._cmudict and random.random() < _p_cmudict:
        text = ' '.join([self._maybe_get_arpabet(word) for word in text.split(' ')])

    input_data = np.asarray(text_to_sequence(text, self._cleaner_names), dtype=np.int32)
    f = BytesIO(file_io.read_file_to_string(
        os.path.join(self._datadir, meta[0]),binary_mode=True))
    linear_target = np.load(f)
    s = BytesIO(file_io.read_file_to_string(
        os.path.join(self._datadir, meta[1]),binary_mode = True))
    mel_target = np.load(s)
    return (input_data, mel_target, linear_target, len(linear_target))

这里有两个屏幕截图,显示不同的谷歌MLFLoydhub

这是我在google中使用的训练命令,我使用了scale-tier=BASIC_GPU gcloud ml-engine jobs submit training "$JOB_NAME" --stream-logs --module-name trainier.train --package-path trainier --staging-bucket "$BUCKET_NAME" --region "us-central1" --scale-tier=basic-gpu --config ~/gp-master/config.yaml --runtime-version=1.4 -- --base_dir "$BASEE_DIR" --input "$TRAIN_DATA"

所以我的问题是,我做了什么事情,可能会导致这种缓慢的读取数据,或者在谷歌云ML中存在问题,我对此表示怀疑?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-08 14:16:05

我想好了,我应该把tensorflow-gpu==1.4放在必需的包中,而不是tensorflow==1.4 ^^

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49169295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档