在 Tensorflow 中使用多个 CPU 核
Using multiple CPU Cores with Tensorflow
我正在 运行 在具有 4 个内核的 Linux 机器上进行 tensorflow 训练。
当检查 htop 的 cpu 利用率时,只有一个核心被完全利用,而其他核心的利用率仅为 ~15%(下图显示了 htop 的屏幕截图)。
如何确保 TF 正在使用所有 CPU 的全部容量?
我知道这个问题 - 如何使其适用于 Tensoflow 2?
.
我正在使用以下代码生成样本:
class WindowGenerator():
def make_dataset(self, data, stride=1):
data = np.array(data, dtype=np.float32)
ds = tf.keras.preprocessing.timeseries_dataset_from_array(
data=data,
targets=None,
sequence_length=self.total_window_size,
sequence_stride=stride,
shuffle=False,
batch_size=self.batch_size,)
ds = ds.map(self.split_window)
return ds
@property
def train(self):
return self.make_dataset(self.train_df)
@property
def val(self):
return self.make_dataset(self.val_df)
@property
def test(self):
return self.make_dataset(self.test_df, stride=24)
我正在使用以下代码 运行 模型训练。 sampleMgmt 属于 Class WindowGenerator。 early_stopping 定义训练终止标准。
history = model.fit(sampleMgmt.train, epochs=self.nrEpochs,
validation_data=sampleMgmt.val,
callbacks=[early_stopping],
verbose=1)
你试过吗?
config = tf.ConfigProto(device_count={"CPU": 8})
with tf.Session(config=config) as sess:
(source)
最后,我在代码之外做了两件事,让 TF 使用所有可用的 CPU。
- 我使用了 SSD 而不是 HDD
- 我使用了 Google Cloud 中提供的 Tensorflow Enterprise Image,而不是 Deep Learning Image
我正在 运行 在具有 4 个内核的 Linux 机器上进行 tensorflow 训练。 当检查 htop 的 cpu 利用率时,只有一个核心被完全利用,而其他核心的利用率仅为 ~15%(下图显示了 htop 的屏幕截图)。
如何确保 TF 正在使用所有 CPU 的全部容量?
我知道这个问题
我正在使用以下代码生成样本:
class WindowGenerator():
def make_dataset(self, data, stride=1):
data = np.array(data, dtype=np.float32)
ds = tf.keras.preprocessing.timeseries_dataset_from_array(
data=data,
targets=None,
sequence_length=self.total_window_size,
sequence_stride=stride,
shuffle=False,
batch_size=self.batch_size,)
ds = ds.map(self.split_window)
return ds
@property
def train(self):
return self.make_dataset(self.train_df)
@property
def val(self):
return self.make_dataset(self.val_df)
@property
def test(self):
return self.make_dataset(self.test_df, stride=24)
我正在使用以下代码 运行 模型训练。 sampleMgmt 属于 Class WindowGenerator。 early_stopping 定义训练终止标准。
history = model.fit(sampleMgmt.train, epochs=self.nrEpochs,
validation_data=sampleMgmt.val,
callbacks=[early_stopping],
verbose=1)
你试过吗?
config = tf.ConfigProto(device_count={"CPU": 8})
with tf.Session(config=config) as sess:
(source)
最后,我在代码之外做了两件事,让 TF 使用所有可用的 CPU。
- 我使用了 SSD 而不是 HDD
- 我使用了 Google Cloud 中提供的 Tensorflow Enterprise Image,而不是 Deep Learning Image