我应该开始说我对任何类型的并行/多线程/多处理编程都是全新的.
现在,我有机会在32个核心上运行我的TensorFlow CNN(每个核心有2个超线程).我花了很多时间试图理解我应该如何修改(如果必须的话)我的代码以便利用所有的计算能力.不幸的是,我没有做任何事情.我希望TF可以自动完成,但是当我启动我的模型并检查topCPU使用情况时,我发现大部分时间都是100%的CPU使用率和几个200%的峰值.如果使用了所有核心,我希望看到100*64 = 6400%的使用率(正确吗?).我怎么能做到这一点?我应该做一些类似于这里解释的事情吗?如果是这种情况,我是否正确理解所有多线程仅适用于涉及队列的计算?这是否真的可以使用所有可用的计算能力(因为在我看来,队列仅用于阅读和批量训练样本时)?
如果需要,这就是我的代码:(main.py)
# pylint: disable=missing-docstring
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
import time
from six.moves import xrange # pylint: disable=redefined-builtin
import tensorflow as tf
from pylab import *
import argparse
import cnn
import freader_2
training_feats_file = ["file_name"]
training_lbls_file = ["file_name"]
test_feats_file = 'file_name'
test_lbls_file = 'file_name'
learning_rate = 0.1
testset_size = 1000
batch_size = 1000
testset_size = 793
tot_samples = 810901
max_steps = 3300 …Run Code Online (Sandbox Code Playgroud) python multithreading neural-network conv-neural-network tensorflow
尝试运行此代码时出现上述意外错误:
# -*- coding: utf-8 -*-
"""
Created on Fri Jun 24 10:38:04 2016
@author: andrea
"""
# pylint: disable=missing-docstring
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
import time
from six.moves import xrange # pylint: disable=redefined-builtin
import tensorflow as tf
from pylab import *
import argparse
import mlp
# Basic model parameters as external flags.
tf.app.flags.FLAGS = tf.python.platform.flags._FlagValues()
tf.app.flags._global_parser = argparse.ArgumentParser()
flags = tf.app.flags
FLAGS = flags.FLAGS
flags.DEFINE_float('learning_rate', 0.01, 'Initial learning rate.')
flags.DEFINE_integer('max_steps', 20, 'Number …Run Code Online (Sandbox Code Playgroud)