开发DNN的一个常见且重要的问题是,哪些操作需要多长时间,以及它们如何在设备和线程之间分配。
在TensorFlow v1中,这通常是通过传递给session.run()的tf.RunOptions(trace_level=tf.RunOptions.FULL_TRACE)来实现的,请参见Can I measure the execution time of individual operations with TensorFlow?
然而,在V2中没有更多的会话。相反,您可以构建和训练一个模型,如下所示:
model = tf.keras.Sequential([
tf.keras.layers.Conv2D(32, 3, activation='relu', input_shape=(28, 28, 1)),
tf.keras.layers.MaxPooling2D(),
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(64, activation='relu'),
tf.keras.layers.Dense(10, activation='softmax')
])
model.compile(loss='sparse_categorical_crossentropy',
optimizer=tf.keras.optimizers.Adam(),
metrics=['accuracy'])
model.fit(train_dataset, epochs=2)我能找到的唯一选择就是tensorflow_core.python.eager.profiler中的profiler应用编程接口。有了它,你就可以得到一个包含事件持续时间的Trace ProtoBuf object。然而,我得到的事件被命名为'Model', 'BatchV2', 'TensorSlice', 'Prefetch', 'MemoryCacheImpl', 'MemoryCache', 'TFRecord', 'Shuffle', 'Map', 'FlatMap', '_Send', 'ParallelMap', 'NotEqual', 'ParallelInterleaveV2', 'LogicalAnd',并且不再与层有明确的关系。
我如何为显示所有操作的运行时和设备&线程的任何模型获取适当的跟踪?
发布于 2020-12-09 13:41:33
TensorFlow分析器需要Tensorflow和Tensorboard的2.2以上版本的。
1.安装'tensorboard_plugin_profile'
pip install -U tensorboard_plugin_profileGPU 2.确认TensorFlow可以访问
device_name = tf.test.gpu_device_name()
if not device_name:
raise SystemError('GPU device not found')
print('Found GPU at: {}'.format(device_name))3.定义张板回调
logs = "[save path]/logs/" + datetime.now().strftime("%Y%m%d-%H%M%S")
tboard_callback = tf.keras.callbacks.TensorBoard(log_dir = logs,
histogram_freq = 1, #option
profile_batch = 5) #option在我的例子中,没有'profile_batch‘选项,我得到了100个步数(这是纪元) ex ) tboard_callback = tf.keras.callbacks.TensorBoard(log_dir = logs)
4.在fit()处设置回调属性
history = model.fit(train_input, train_output,
batch_size=BATCH_SIZE, epochs=EPOCHS,
callbacks=[tboard_callback])5.训练结束后,在终端上运行tensorboard
tensorboard --logdir [save path]/logs/ 不需要双引号
python ex) tensorboard --logdir \\tb\logs
6.打开浏览器并输入'localhost:6006‘> Profile > kernal_stats

7.检查“跟踪查看器”和"kernel_stats"


我没有图形处理器,所以我不能得到kernel_stats。
更多关于它的信息,我推荐这个页面。
https://www.tensorflow.org/tensorboard/tensorboard_profiling_keras
https://stackoverflow.com/questions/58344162
复制相似问题