-
Notifications
You must be signed in to change notification settings - Fork 1.7k
[WIP] tensorboard-notf for pytorch (re-submit of #1799) #1801
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
base: master
Are you sure you want to change the base?
Changes from all commits
bc7dab4
ee2af83
ce5ef2f
6359ec2
abb08f0
116cceb
4646fce
34a5e30
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
# remove later | ||
bazel clean | ||
pip uninstall tensorboard -y | ||
rm -rf /tmp/tensorboard/ | ||
bazel run //tensorboard/pip_package:build_pip_package | ||
pip install /tmp/tensorboard/dist/tensorboard-1.13.0a0-py3-none-any.whl | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,96 @@ | ||
/* Copyright 2017 The TensorFlow Authors. All Rights Reserved. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can we use the version in the plugin directory? https://github.com/tensorflow/tensorboard/blob/master/tensorboard/plugins/custom_scalar/layout.proto |
||
Licensed under the Apache License, Version 2.0 (the "License"); | ||
you may not use this file except in compliance with the License. | ||
You may obtain a copy of the License at | ||
http://www.apache.org/licenses/LICENSE-2.0 | ||
Unless required by applicable law or agreed to in writing, software | ||
distributed under the License is distributed on an "AS IS" BASIS, | ||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
See the License for the specific language governing permissions and | ||
limitations under the License. | ||
==============================================================================*/ | ||
|
||
syntax = "proto3"; | ||
|
||
package tensorboard; | ||
|
||
|
||
/** | ||
* Encapsulates information on a single chart. Many charts appear in a category. | ||
*/ | ||
message Chart { | ||
// The title shown atop this chart. Optional. Defaults to 'untitled'. | ||
string title = 1; | ||
|
||
// The content of the chart. This depends on the type of the chart. | ||
oneof content { | ||
MultilineChartContent multiline = 2; | ||
MarginChartContent margin = 3; | ||
} | ||
} | ||
|
||
/** | ||
* Encapsulates information on a single line chart. This line chart may have | ||
* lines associated with several tags. | ||
*/ | ||
message MultilineChartContent { | ||
// A list of regular expressions for tags that should appear in this chart. | ||
// Tags are matched from beginning to end. Each regex captures a set of tags. | ||
repeated string tag = 1; | ||
} | ||
|
||
/** | ||
* Encapsulates information on a single margin chart. A margin chart uses fill | ||
* area to visualize lower and upper bounds that surround a value. | ||
*/ | ||
message MarginChartContent { | ||
/** | ||
* Encapsulates a tag of data for the chart. | ||
*/ | ||
message Series { | ||
// The exact tag string associated with the scalar summaries making up the | ||
// main value between the bounds. | ||
string value = 1; | ||
|
||
// The exact tag string associated with the scalar summaries making up the | ||
// lower bound. | ||
string lower = 2; | ||
|
||
// The exact tag string associated with the scalar summaries making up the | ||
// upper bound. | ||
string upper = 3; | ||
} | ||
|
||
// A list of data series to include within this margin chart. | ||
repeated Series series = 1; | ||
} | ||
|
||
/** | ||
* A category contains a group of charts. Each category maps to a collapsible | ||
* within the dashboard. | ||
*/ | ||
message Category { | ||
// This string appears atop each grouping of charts within the dashboard. | ||
string title = 1; | ||
|
||
// Encapsulates data on charts to be shown in the category. | ||
repeated Chart chart = 2; | ||
|
||
// Whether this category should be initially closed. False by default. | ||
bool closed = 3; | ||
} | ||
|
||
/** | ||
* A layout encapsulates how charts are laid out within the custom scalars | ||
* dashboard. | ||
*/ | ||
message Layout { | ||
// Version `0` is the only supported version. | ||
int32 version = 1; | ||
|
||
// The categories here are rendered from top to bottom. | ||
repeated Category category = 2; | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
/* Copyright 2017 The TensorFlow Authors. All Rights Reserved. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can we use the version of this in the plugin directory instead? https://github.com/tensorflow/tensorboard/blob/master/tensorboard/plugins/pr_curve/plugin_data.proto |
||
Licensed under the Apache License, Version 2.0 (the "License"); | ||
you may not use this file except in compliance with the License. | ||
You may obtain a copy of the License at | ||
http://www.apache.org/licenses/LICENSE-2.0 | ||
Unless required by applicable law or agreed to in writing, software | ||
distributed under the License is distributed on an "AS IS" BASIS, | ||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
See the License for the specific language governing permissions and | ||
limitations under the License. | ||
==============================================================================*/ | ||
|
||
syntax = "proto3"; | ||
|
||
package tensorboard; | ||
|
||
message PrCurvePluginData { | ||
// Version `0` is the only supported version. | ||
int32 version = 1; | ||
|
||
uint32 num_thresholds = 2; | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
/* Copyright 2017 The TensorFlow Authors. All Rights Reserved. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. replaces plugin_text.proto and plugin_pr_curve.proto with plugin_data.proto will lead to name confliction. How about using soft links? |
||
Licensed under the Apache License, Version 2.0 (the "License"); | ||
you may not use this file except in compliance with the License. | ||
You may obtain a copy of the License at | ||
http://www.apache.org/licenses/LICENSE-2.0 | ||
Unless required by applicable law or agreed to in writing, software | ||
distributed under the License is distributed on an "AS IS" BASIS, | ||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
See the License for the specific language governing permissions and | ||
limitations under the License. | ||
==============================================================================*/ | ||
|
||
syntax = "proto3"; | ||
|
||
package tensorboard; | ||
|
||
// Text summaries created by the `tensorboard.plugins.text.summary` | ||
// module will include `SummaryMetadata` whose `plugin_data` field has | ||
// as `content` a binary string that is the encoding of an | ||
// `TextPluginData` proto. | ||
message TextPluginData { | ||
// Version `0` is the only supported version. | ||
int32 version = 1; | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
# Description: | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Instead of |
||
# TensorBoard, a dashboard for investigating TensorFlow | ||
|
||
package(default_visibility = ["//tensorboard:internal"]) | ||
|
||
licenses(["notice"]) # Apache 2.0 | ||
|
||
exports_files(["LICENSE"]) | ||
|
||
py_library( | ||
name = "tensorboard", | ||
srcs = glob([ | ||
"*.py", | ||
]), | ||
srcs_version = "PY2AND3", | ||
visibility = ["//visibility:public"], | ||
deps = [ | ||
"//tensorboard:expect_numpy_installed", | ||
"//tensorboard/compat/proto:protos_all_py_pb2", | ||
"@org_pythonhosted_six", | ||
], | ||
) |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
# Copyright 2017 The TensorFlow Authors. All Rights Reserved. | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
|
||
"""Compatibility interfaces for TensorBoard.""" | ||
|
||
from __future__ import absolute_import | ||
from __future__ import division | ||
from __future__ import print_function | ||
|
||
USING_TF = True | ||
|
||
# Don't attempt to use TF at all if this import exists due to build rules. | ||
try: | ||
from tensorboard.compat import notf | ||
USING_TF = False | ||
except ImportError: | ||
pass | ||
|
||
if USING_TF: | ||
try: | ||
import tensorflow as tf | ||
except ImportError: | ||
USING_TF = False | ||
|
||
if not USING_TF: | ||
from tensorboard.compat import tensorflow_stub as tf |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,138 @@ | ||
# Copyright 2015 The TensorFlow Authors. All Rights Reserved. | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
# ============================================================================== | ||
|
||
import array | ||
|
||
|
||
CRC_TABLE = ( | ||
0x00000000, 0xf26b8303, 0xe13b70f7, 0x1350f3f4, | ||
0xc79a971f, 0x35f1141c, 0x26a1e7e8, 0xd4ca64eb, | ||
0x8ad958cf, 0x78b2dbcc, 0x6be22838, 0x9989ab3b, | ||
0x4d43cfd0, 0xbf284cd3, 0xac78bf27, 0x5e133c24, | ||
0x105ec76f, 0xe235446c, 0xf165b798, 0x030e349b, | ||
0xd7c45070, 0x25afd373, 0x36ff2087, 0xc494a384, | ||
0x9a879fa0, 0x68ec1ca3, 0x7bbcef57, 0x89d76c54, | ||
0x5d1d08bf, 0xaf768bbc, 0xbc267848, 0x4e4dfb4b, | ||
0x20bd8ede, 0xd2d60ddd, 0xc186fe29, 0x33ed7d2a, | ||
0xe72719c1, 0x154c9ac2, 0x061c6936, 0xf477ea35, | ||
0xaa64d611, 0x580f5512, 0x4b5fa6e6, 0xb93425e5, | ||
0x6dfe410e, 0x9f95c20d, 0x8cc531f9, 0x7eaeb2fa, | ||
0x30e349b1, 0xc288cab2, 0xd1d83946, 0x23b3ba45, | ||
0xf779deae, 0x05125dad, 0x1642ae59, 0xe4292d5a, | ||
0xba3a117e, 0x4851927d, 0x5b016189, 0xa96ae28a, | ||
0x7da08661, 0x8fcb0562, 0x9c9bf696, 0x6ef07595, | ||
0x417b1dbc, 0xb3109ebf, 0xa0406d4b, 0x522bee48, | ||
0x86e18aa3, 0x748a09a0, 0x67dafa54, 0x95b17957, | ||
0xcba24573, 0x39c9c670, 0x2a993584, 0xd8f2b687, | ||
0x0c38d26c, 0xfe53516f, 0xed03a29b, 0x1f682198, | ||
0x5125dad3, 0xa34e59d0, 0xb01eaa24, 0x42752927, | ||
0x96bf4dcc, 0x64d4cecf, 0x77843d3b, 0x85efbe38, | ||
0xdbfc821c, 0x2997011f, 0x3ac7f2eb, 0xc8ac71e8, | ||
0x1c661503, 0xee0d9600, 0xfd5d65f4, 0x0f36e6f7, | ||
0x61c69362, 0x93ad1061, 0x80fde395, 0x72966096, | ||
0xa65c047d, 0x5437877e, 0x4767748a, 0xb50cf789, | ||
0xeb1fcbad, 0x197448ae, 0x0a24bb5a, 0xf84f3859, | ||
0x2c855cb2, 0xdeeedfb1, 0xcdbe2c45, 0x3fd5af46, | ||
0x7198540d, 0x83f3d70e, 0x90a324fa, 0x62c8a7f9, | ||
0xb602c312, 0x44694011, 0x5739b3e5, 0xa55230e6, | ||
0xfb410cc2, 0x092a8fc1, 0x1a7a7c35, 0xe811ff36, | ||
0x3cdb9bdd, 0xceb018de, 0xdde0eb2a, 0x2f8b6829, | ||
0x82f63b78, 0x709db87b, 0x63cd4b8f, 0x91a6c88c, | ||
0x456cac67, 0xb7072f64, 0xa457dc90, 0x563c5f93, | ||
0x082f63b7, 0xfa44e0b4, 0xe9141340, 0x1b7f9043, | ||
0xcfb5f4a8, 0x3dde77ab, 0x2e8e845f, 0xdce5075c, | ||
0x92a8fc17, 0x60c37f14, 0x73938ce0, 0x81f80fe3, | ||
0x55326b08, 0xa759e80b, 0xb4091bff, 0x466298fc, | ||
0x1871a4d8, 0xea1a27db, 0xf94ad42f, 0x0b21572c, | ||
0xdfeb33c7, 0x2d80b0c4, 0x3ed04330, 0xccbbc033, | ||
0xa24bb5a6, 0x502036a5, 0x4370c551, 0xb11b4652, | ||
0x65d122b9, 0x97baa1ba, 0x84ea524e, 0x7681d14d, | ||
0x2892ed69, 0xdaf96e6a, 0xc9a99d9e, 0x3bc21e9d, | ||
0xef087a76, 0x1d63f975, 0x0e330a81, 0xfc588982, | ||
0xb21572c9, 0x407ef1ca, 0x532e023e, 0xa145813d, | ||
0x758fe5d6, 0x87e466d5, 0x94b49521, 0x66df1622, | ||
0x38cc2a06, 0xcaa7a905, 0xd9f75af1, 0x2b9cd9f2, | ||
0xff56bd19, 0x0d3d3e1a, 0x1e6dcdee, 0xec064eed, | ||
0xc38d26c4, 0x31e6a5c7, 0x22b65633, 0xd0ddd530, | ||
0x0417b1db, 0xf67c32d8, 0xe52cc12c, 0x1747422f, | ||
0x49547e0b, 0xbb3ffd08, 0xa86f0efc, 0x5a048dff, | ||
0x8ecee914, 0x7ca56a17, 0x6ff599e3, 0x9d9e1ae0, | ||
0xd3d3e1ab, 0x21b862a8, 0x32e8915c, 0xc083125f, | ||
0x144976b4, 0xe622f5b7, 0xf5720643, 0x07198540, | ||
0x590ab964, 0xab613a67, 0xb831c993, 0x4a5a4a90, | ||
0x9e902e7b, 0x6cfbad78, 0x7fab5e8c, 0x8dc0dd8f, | ||
0xe330a81a, 0x115b2b19, 0x020bd8ed, 0xf0605bee, | ||
0x24aa3f05, 0xd6c1bc06, 0xc5914ff2, 0x37faccf1, | ||
0x69e9f0d5, 0x9b8273d6, 0x88d28022, 0x7ab90321, | ||
0xae7367ca, 0x5c18e4c9, 0x4f48173d, 0xbd23943e, | ||
0xf36e6f75, 0x0105ec76, 0x12551f82, 0xe03e9c81, | ||
0x34f4f86a, 0xc69f7b69, 0xd5cf889d, 0x27a40b9e, | ||
0x79b737ba, 0x8bdcb4b9, 0x988c474d, 0x6ae7c44e, | ||
0xbe2da0a5, 0x4c4623a6, 0x5f16d052, 0xad7d5351, | ||
) | ||
|
||
|
||
CRC_INIT = 0 | ||
|
||
_MASK = 0xFFFFFFFF | ||
|
||
|
||
def crc_update(crc, data): | ||
"""Update CRC-32C checksum with data. | ||
|
||
Args: | ||
crc: 32-bit checksum to update as long. | ||
data: byte array, string or iterable over bytes. | ||
|
||
Returns: | ||
32-bit updated CRC-32C as long. | ||
""" | ||
|
||
if type(data) != array.array or data.itemsize != 1: | ||
buf = array.array("B", data) | ||
else: | ||
buf = data | ||
|
||
crc ^= _MASK | ||
for b in buf: | ||
table_index = (crc ^ b) & 0xff | ||
crc = (CRC_TABLE[table_index] ^ (crc >> 8)) & _MASK | ||
return crc ^ _MASK | ||
|
||
|
||
def crc_finalize(crc): | ||
"""Finalize CRC-32C checksum. | ||
|
||
This function should be called as last step of crc calculation. | ||
|
||
Args: | ||
crc: 32-bit checksum as long. | ||
|
||
Returns: | ||
finalized 32-bit checksum as long | ||
""" | ||
return crc & _MASK | ||
|
||
|
||
def crc32c(data): | ||
"""Compute CRC-32C checksum of the data. | ||
|
||
Args: | ||
data: byte array, string or iterable over bytes. | ||
|
||
Returns: | ||
32-bit CRC-32C checksum of data as long. | ||
""" | ||
return crc_finalize(crc_update(CRC_INIT, data)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we can actually get all three of these from the plugins/ directory.