tensorflow / tensorflow/tensorboard

Embedding Projector shows wrong images from sprite when isolating points

Open
#4,611 3 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

core:frontend plugin:projector stat:awaiting tensorflower type:bug
Dominant language
TypeScript
Stars
7.2k
Forks
1.7k
Avg merge
4d 22h
Merged PRs (30d)
1

Description

Environment information (required)

Fresh conda env, TB-Version 2.4.1
Diagnose output:

Diagnostics output
--- check: autoidentify
INFO: diagnose_tensorboard.py version e43767ef2b648d0d5d57c00f38ccbd38390e38da

--- check: general
INFO: sys.version_info: sys.version_info(major=3, minor=7, micro=6, releaselevel='final', serial=0)
INFO: os.name: posix
INFO: os.uname(): posix.uname_result(sysname='Linux', nodename='dbe-graph-machine-learning', release='5.4.0-58-generic', version='#64~18.04.1-Ubuntu SMP Wed Dec 9 17:11:11 UTC 2020', machine='x86_64')
INFO: sys.getwindowsversion(): N/A

--- check: package_management
INFO: has conda-meta: True
INFO: $VIRTUAL_ENV: None

--- check: installed_packages
WARNING: no installation among: ['tb-nightly', 'tensorboard', 'tensorflow-tensorboard']
WARNING: no installation among: ['tensorflow', 'tensorflow-gpu', 'tf-nightly', 'tf-nightly-2.0-preview', 'tf-nightly-gpu', 'tf-nightly-gpu-2.0-preview']
WARNING: no installation among: ['tensorflow-estimator', 'tensorflow-estimator-2.0-preview', 'tf-estimator-nightly']

--- check: tensorboard_python_version
INFO: tensorboard.version.VERSION: '2.4.1'

--- check: tensorflow_python_version
Traceback (most recent call last):
  File "diagnose_tensorboard.py", line 522, in main
    suggestions.extend(check())
  File "diagnose_tensorboard.py", line 75, in wrapper
    result = fn()
  File "diagnose_tensorboard.py", line 278, in tensorflow_python_version
    import tensorflow as tf
ModuleNotFoundError: No module named 'tensorflow'

--- check: tensorboard_data_server_version
INFO: no data server installed

--- check: tensorboard_binary_path
INFO: which tensorboard: b'/home/dbelousow/.conda/envs/tensorboard/bin/tensorboard\n'

--- check: addrinfos
socket.has_ipv6 = True
socket.AF_UNSPEC = <AddressFamily.AF_UNSPEC: 0>
socket.SOCK_STREAM = <SocketKind.SOCK_STREAM: 1>
socket.AI_ADDRCONFIG = <AddressInfo.AI_ADDRCONFIG: 32>
socket.AI_PASSIVE = <AddressInfo.AI_PASSIVE: 1>
Loopback flags: <AddressInfo.AI_ADDRCONFIG: 32>
Loopback infos: [(<AddressFamily.AF_INET: 2>, <SocketKind.SOCK_STREAM: 1>, 6, '', ('127.0.0.1', 0))]
Wildcard flags: <AddressInfo.AI_PASSIVE: 1>
Wildcard infos: [(<AddressFamily.AF_INET: 2>, <SocketKind.SOCK_STREAM: 1>, 6, '', ('0.0.0.0', 0)), (<AddressFamily.AF_INET6: 10>, <SocketKind.SOCK_STREAM: 1>, 6, '', ('::', 0, 0, 0))]

--- check: readable_fqdn
INFO: socket.getfqdn(): 'dbe-graph-machine-learning'

--- check: stat_tensorboardinfo
INFO: directory: /tmp/.tensorboard-info
INFO: os.stat(...): os.stat_result(st_mode=16895, st_ino=63320152, st_dev=1048671, st_nlink=2, st_uid=1008, st_gid=100, st_size=4096, st_atime=1611673572, st_mtime=1611673519, st_ctime=1611673519)
INFO: mode: 0o40777

--- check: source_trees_without_genfiles
INFO: tensorboard_roots (1): ['/home/dbelousow/.conda/envs/tensorboard/lib/python3.7/site-packages']; bad_roots (0): []

--- check: full_pip_freeze
INFO: pip freeze --all:
absl-py @ file:///home/conda/feedstock_root/build_artifacts/absl-py_1606235476795/work
aiohttp @ file:///home/conda/feedstock_root/build_artifacts/aiohttp_1605734405039/work
alembic==1.4.2
async-generator==1.10
async-timeout==3.0.1
attrs==19.3.0
backcall @ file:///home/conda/feedstock_root/build_artifacts/backcall_1592338393461/work
bleach @ file:///home/conda/feedstock_root/build_artifacts/bleach_1588608214987/work
blinker==1.4
brotlipy==0.7.0
cachetools @ file:///home/conda/feedstock_root/build_artifacts/cachetools_1593420445823/work
certifi==2020.6.20
certipy==0.1.3
cffi==1.14.0
chardet==3.0.4
click==7.1.2
conda-package-handling==1.6.0
cryptography==2.9.2
decorator==4.4.2
defusedxml==0.6.0
entrypoints==0.3
google-auth @ file:///home/conda/feedstock_root/build_artifacts/google-auth_1608136875028/work
google-auth-oauthlib==0.4.1
grpcio @ file:///tmp/build/80754af9/grpcio_1597424467487/work
idna @ file:///home/conda/feedstock_root/build_artifacts/idna_1593328102638/work
importlib-metadata @ file:///home/conda/feedstock_root/build_artifacts/importlib-metadata_1593211369179/work
ipykernel @ file:///home/conda/feedstock_root/build_artifacts/ipykernel_1595101337245/work/dist/ipykernel-5.3.3-py3-none-any.whl
ipython @ file:///home/conda/feedstock_root/build_artifacts/ipython_1593235460530/work
ipython-genutils==0.2.0
ipywidgets==7.5.1
jedi @ file:///home/conda/feedstock_root/build_artifacts/jedi_1595018882455/work
Jinja2==2.11.2
json5 @ file:///home/conda/feedstock_root/build_artifacts/json5_1591810480056/work
jsonschema==3.2.0
jupyter-client @ file:///home/conda/feedstock_root/build_artifacts/jupyter_client_1594732094290/work
jupyter-conda @ file:///home/conda/feedstock_root/build_artifacts/jupyter_conda_1589973227038/work
jupyter-console==6.1.0
jupyter-core==4.6.3
jupyter-telemetry==0.0.5
jupyterhub==1.1.0
jupyterlab==2.2.0
jupyterlab-server @ file:///home/conda/feedstock_root/build_artifacts/jupyterlab_server_1593951277307/work
Mako==1.1.0
Markdown @ file:///home/conda/feedstock_root/build_artifacts/markdown_1603668500820/work
MarkupSafe==1.1.1
mistune==0.8.4
multidict @ file:///tmp/build/80754af9/multidict_1607367738239/work
nb-conda-kernels==2.2.3
nbconvert==5.6.1
nbformat @ file:///home/conda/feedstock_root/build_artifacts/nbformat_1594060262917/work
notebook @ file:///home/conda/feedstock_root/build_artifacts/notebook_1594078842924/work
numpy==1.16.5
oauthlib==3.0.1
packaging @ file:///home/conda/feedstock_root/build_artifacts/packaging_1589925210001/work
pamela==1.0.0
pandocfilters==1.4.2
parso==0.7.0
pexpect==4.8.0
pickleshare==0.7.5
pip==20.1.1
prometheus-client @ file:///home/conda/feedstock_root/build_artifacts/prometheus_client_1590412252446/work
prompt-toolkit @ file:///home/conda/feedstock_root/build_artifacts/prompt-toolkit_1592500439797/work
protobuf==3.13.0
ptyprocess==0.6.0
pyasn1==0.4.8
pyasn1-modules==0.2.7
pycosat==0.6.3
pycparser @ file:///home/conda/feedstock_root/build_artifacts/pycparser_1593275161868/work
pycurl==7.43.0.5
Pygments==2.6.1
PyJWT==1.7.1
pyOpenSSL==19.1.0
pyparsing==2.4.7
PyQt5==5.12.3
PyQt5-sip==4.19.18
PyQtChart==5.12
PyQtWebEngine==5.12.1
pyrsistent==0.16.0
PySocks==1.7.1
python-dateutil==2.8.1
python-editor==1.0.4
python-json-logger==0.1.11
pytz==2020.1
pyzmq==19.0.1
qtconsole @ file:///home/conda/feedstock_root/build_artifacts/qtconsole_1592845750760/work
QtPy==1.9.0
requests @ file:///home/conda/feedstock_root/build_artifacts/requests_1592425495151/work
requests-oauthlib @ file:///home/conda/feedstock_root/build_artifacts/requests-oauthlib_1595492159598/work
rsa @ file:///home/conda/feedstock_root/build_artifacts/rsa_1610280765105/work
ruamel-yaml==0.15.80
ruamel.yaml.clib==0.2.0
Send2Trash==1.5.0
setuptools==49.2.0.post20200712
six @ file:///home/conda/feedstock_root/build_artifacts/six_1590081179328/work
SQLAlchemy @ file:///home/conda/feedstock_root/build_artifacts/sqlalchemy_1593116989295/work
tensorboard @ file:///home/conda/feedstock_root/build_artifacts/tensorboard_1610699261066/work/tensorboard-2.4.1-py3-none-any.whl
tensorboard-plugin-wit @ file:///home/conda/feedstock_root/build_artifacts/tensorboard-plugin-wit_1611075653546/work/tensorboard_plugin_wit-1.8.0-py3-none-any.whl
terminado==0.8.3
testpath==0.4.4
tornado==6.0.4
tqdm @ file:///home/conda/feedstock_root/build_artifacts/tqdm_1594937875116/work
traitlets==4.3.3
typing-extensions @ file:///home/conda/feedstock_root/build_artifacts/typing_extensions_1602702424206/work
urllib3==1.25.9
wcwidth @ file:///home/conda/feedstock_root/build_artifacts/wcwidth_1592931742287/work
webencodings==0.5.1
Werkzeug==1.0.1
wheel==0.34.2
widgetsnbextension @ file:///home/conda/feedstock_root/build_artifacts/widgetsnbextension_1594164347302/work
yarl @ file:///home/conda/feedstock_root/build_artifacts/yarl_1605429464118/work
zipp==3.1.0

Issue description

When isolating points in a point cloud to a reduced number. The image preview uses the wrong images from the sprite.png. (see screenshots below). First screenshot shows a randomly chosen point in an embedding and it is showing the correct images as nearest neighbors. Second screenshot shows what happens when one isolates the neighbors to a few points. I guess the index of the image position is not saved and the projectors starts counting at 0 when matching the new list of points.
correct
wrong

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in the Embedding Projector by reproducing the issue with a point cloud, then compare image previews before and after isolating points. Trace how the reduced point list maps to sprite.png positions; done when isolated points still show their original corresponding images.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
data-visualization, frontend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.