-
Notifications
You must be signed in to change notification settings - Fork 58
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ProfilerPluginLoader fails due to protobuf versions #609
Comments
same observation on my setup: setting PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python does not help either: No profile data was found. |
I hav the same issue! |
Ok, I think I found the rootcause of the problem. It is caused by a bug in the Bazel configuration files. All profiler protobuf stubs are generated using the ancient protobuf package ( 3.8.0 ). Which makes them incompatible with protobuf stubs from tensorboad/tensorflow as they are generated with the newer protobuf package >= 3.19.6. Tensorboard has an explicit dependency to load protobuf 3.19.6 for stub generation. Such a dependency is missing in the Bazel configuration for the profiler - instead it has a dependency on tensorflow 2.1.0 where protobuf 3.8.0 is loaded: this makes tensorflow profiler incompatible with all tensorboard/tensorflow releases based on protobuf >= 3.19.0 |
#636 Fixes this isuse, You can verify that the change works by downloading tbp-nightly. |
Thanks, It looks like the fix solves the problem with protobuf compatibility. However still I cannot see any profile data in the browser, the log from tensorboard/profiler shows the followng: NOTE: Using experimental fast data loading logic. To disable, pass Serving TensorBoard on localhost; to expose to the network, use a proxy or pass --bind_all |
Hi, Could you provide information regarding the version of the packages installed on your system? I don't see a possible error condition within the logs provided. Do you see any errors within the browser console?. |
Sure, I can recreate this problem with latest: log from tensorboard: NOTE: Using experimental fast data loading logic. To disable, pass Serving TensorBoard on localhost; to expose to the network, use a proxy or pass --bind_all here is tf execution log from my app: this is the list of files created in log directory during the program execution: in the browser - in the profiler tab the message "No profile data was found." appears |
What is the logdir specified when starting tensorboard? |
tensorboard --logdir ~/logs |
Seems like an issue with the logdir path, It should be You could try running |
Wow, with tensorboard --logdir /home/jozef/logs/20230609-214008 it works like a charm. Thanks for this workaroud. 👍 |
Using what is available as the latest versions from pip I get the following error
E0421 08:52:53.103637 140219640803328 application.py:125] Failed to load plugin ProfilePluginLoader.load; ignoring it.
Traceback (most recent call last):
File "/home/richard/.virtualenvs/deep_learning/lib/python3.10/site-packages/tensorboard/backend/application.py", line 123, in TensorBoardWSGIApp
plugin = loader.load(context)
File "/home/richard/.virtualenvs/deep_learning/lib/python3.10/site-packages/tensorboard_plugin_profile/profile_plugin_loader.py", line 75, in load
from tensorboard_plugin_profile import profile_plugin
File "/home/richard/.virtualenvs/deep_learning/lib/python3.10/site-packages/tensorboard_plugin_profile/profile_plugin.py", line 36, in
from tensorboard_plugin_profile.convert import raw_to_tool_data as convert
File "/home/richard/.virtualenvs/deep_learning/lib/python3.10/site-packages/tensorboard_plugin_profile/convert/raw_to_tool_data.py", line 29, in
from tensorboard_plugin_profile.convert import input_pipeline_proto_to_gviz
File "/home/richard/.virtualenvs/deep_learning/lib/python3.10/site-packages/tensorboard_plugin_profile/convert/input_pipeline_proto_to_gviz.py", line 28, in
from tensorboard_plugin_profile.protobuf import input_pipeline_pb2
File "/home/richard/.virtualenvs/deep_learning/lib/python3.10/site-packages/tensorboard_plugin_profile/protobuf/input_pipeline_pb2.py", line 17, in
from tensorboard_plugin_profile.protobuf import diagnostics_pb2 as plugin_dot_tensorboard__plugin__profile_dot_protobuf_dot_diagnostics__pb2
File "/home/richard/.virtualenvs/deep_learning/lib/python3.10/site-packages/tensorboard_plugin_profile/protobuf/diagnostics_pb2.py", line 36, in
_descriptor.FieldDescriptor(
File "/home/richard/.virtualenvs/deep_learning/lib/python3.10/site-packages/google/protobuf/descriptor.py", line 561, in new
_message.Message._CheckCalledFromGeneratedFile()
TypeError: Descriptors cannot not be created directly.
If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0.
If you cannot immediately regenerate your protos, some other possible workarounds are:
It seems like the profiler plugin is incompatible with the latest tensorflow and tensorboard.
The text was updated successfully, but these errors were encountered: