使用带有 Tensorflow 后端的 Keras,我试图训练一个 LSTM 网络,在 GPU 上运行它比在 CPU 上运行它需要更长的时间。
我正在使用 fit_generator 函数训练 LSTM 网络。每个 epoch 需要 CPU 约 250 秒,而每个 epoch 需要 GPU 约 900 秒。我的 GPU 环境中的包包括
keras-applications 1.0.8 py_0 anaconda
keras-base 2.2.4 py36_0 anaconda
keras-gpu 2.2.4 0 anaconda
keras-preprocessing 1.1.0 py_1 anaconda
...
tensorflow 1.13.1 gpu_py36h3991807_0 anaconda
tensorflow-base 1.13.1 gpu_py36h8d69cac_0 anaconda
tensorflow-estimator 1.13.0 py_0 anaconda
tensorflow-gpu 1.13.1 pypi_0 pypi
Run Code Online (Sandbox Code Playgroud)
我的 Cuda 编译工具是 9.1.85 版本,我的 CUDA 和驱动程序版本是
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 418.67 Driver Version: 418.67 CUDA Version: 10.1 | …Run Code Online (Sandbox Code Playgroud) 我有一个数据框,其中有一个时间列,其中的值是字符串。我想对数据帧进行子集化,以便只有窗口内的值才位于子集中。目前我正在使用
date_format = '%Y-%m-%d'
window_start = datetime.strptime('2000-01-01', date_format)
window_end = datetime.strptime('2010-12-31', date_format)
subs_df = pandas.DataFrame(index=np.arange(0, 0),
columns = list(orig_df.columns))
for i, row in orig_df.iterrows():
date = datetime.strptime(row.time, date_format)
f date >= window_start and date <= window_end:
subs_df = subs_df.append(row, ignore_index=True)
Run Code Online (Sandbox Code Playgroud)
这非常慢。我有一种感觉,我正在做一些根本错误的事情。这样做更好的方法是什么?
感谢您的时间。