提议的重构或弃用
很酷的项目!我想知道在使用TensorboardTracker
时是否可以移除tensorflow依赖。
aim/pkgs/aimstack/tensorboard_sync/tracker.py
第3行在3aee452中
| | importtensorflowastf |
动机
如果没有实际需要,我们希望避免引入tensorflow
这个沉重的依赖。
建议
你可以在这里只在需要的时候导入tensorflow:
aim/pkgs/aimstack/tensorboard_sync/tracker.py
3aee452中的第184行到第196行
| | track_val= [Image(tf.image.decode_image(t).numpy()) fortintensor] |
| | iflen(track_val) ==1: |
| | track_val=track_val[0] |
| | elifplugin_name=="histograms": |
| | track_val=_decode_histogram_from_plugin(value) |
| | elifplugin_name=="scalars"orplugin_name=="": |
| | track_val=create_ndarray(value.tensor) |
| | else: |
| | track_val=value.tensor.float_val[0] |
| | elifvalue.HasField("simple_value"): |
| | track_val=value.simple_value |
| | elifvalue.HasField("image"): |
| | track_val=Image(tf.image.decode_image(value.image.encoded_image_string).numpy()) |
6条答案
按热度按时间ztyzrc3y1#
嘿,@vwxyzjn!非常感谢你的报告。
实际上,
tensorboard
并未被列为aim
包的依赖项,它仅在tensorboard_sync/tracker.py
中导入,并且仅用于实时转换tensorboard
日志,因此不会成为aim
流程的一部分,也不会导致任何问题,如果tensorboard
未安装的话。bt1cpqcv2#
你好,@mihran113,感谢你的回复。我的意思是使用tensorflow而不是tensorboard。
zkure5ic3#
对不起,我误解了你的意思,但是
tensorflow
也是一样,我们没有把它作为依赖项。安装aim
和tensorflow
时,不会将其作为依赖项安装,除非你使用tensorboard_sync.run.Run
对象,否则不会引起任何问题。ykejflvf4#
@mihran113,这是正确的。然而,我们只想在不使用tensorflow依赖的情况下执行以下操作。
为了提供更多上下文,我们在CleanRL中一直使用tensorboard来记录指标,并可以选择将tensorboard同步到wandb。我们的一些用户一直在询问与aiml的集成,所以我们想到了以下解决方案,该方案可选地支持aiml和wandb。
话虽如此,我注意到
from aim.ext.tensorboard_tracker import Run
需要tensorflow
依赖项,而我们之前并不需要为wandb的tensorboard同步添加这个依赖项。这是一个小众需求,但我在想是否可以去掉tensorflow依赖。bmvo0sr55#
@vwxyzjn 明白了!这很有道理,我会尽量在下一个补丁发布中加入这个功能。
v9tzhpje6#
谢谢!