web-dev-qa-db-fra.com

tensorboard colab tensorflow._api.v1.io.gfile 'n'a pas d'attribut' get_filesystem

J'essaye d'utiliser tensorboard sur colab. J'arrive à le faire fonctionner, mais pas pour toutes les commandes. add_graph et add_scalar fonctionnent, mais lorsque j'ai essayé d'exécuter add_embedding, j'obtiens l'erreur suivante:

AttributeError: module 'tensorflow._api.v1.io.gfile' has no attribute 'get_filesystem'

C'est le code pertinent (je pense);

import os
from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter(log_dir ="logs" )

images, labels = select_n_random(trainset.data, trainset.targets)
images = torch.from_numpy(images)
labels = torch.from_numpy(np.array(labels))
class_labels = [classes[lab] for lab in labels]

# log embeddings
features = images.reshape((-1,32*32*3))
writer.add_embedding(features,metadata=class_labels) #, label_img=images.unsqueeze(1))

L'erreur complète est:

/tensorflow-1.15.0/python3.6/tensorflow_core/python/util/module_wrapper.py in __getattr__(self, name)
    191   def __getattr__(self, name):
    192     try:
--> 193       attr = getattr(self._tfmw_wrapped_module, name)
    194     except AttributeError:
    195       if not self._tfmw_public_apis:

AttributeError: module 'tensorflow._api.v1.io.gfile' has no attribute 'get_filesystem'

en utilisant

  • tensorflow-1.15.0 (a essayé d'installer 2.0 mais avait des problèmes différents)
  • Python 3.6.9
  • torche 1.4.0
  • tensorboard 2.1.1 (essayé aussi avec 1.15.0 mais même problème)

J'ai également essayé d'utiliser la commande "magic":

%load_ext tensorboard
%tensorboard --logdir logs

Mais je n'ai pas pu le faire fonctionner de cette façon (autres problèmes).

Des suggestions comment puis-je le faire fonctionner?

4
justadev

J'exécute mon code dans Colab et il semble avoir des problèmes avec le writer.py

# helper function
def select_n_random(data, labels, n=100):
    '''
    Selects n random datapoints and their corresponding labels from a dataset
    '''
    assert len(data) == len(labels)

    perm = torch.randperm(len(data))
    return data[perm][:n], labels[perm][:n]

# select random images and their target indices
images, labels = select_n_random(trainset.data, trainset.targets)

# get the class labels for each image
class_labels = [classes[lab] for lab in labels]

# log embeddings
features = images.view(-1, 28 * 28)
writer.add_embedding(features,
                    metadata=class_labels,
                    label_img=images.unsqueeze(1))
writer.close() 

Lors de l'exécution de ce tutoriel dans Colab https://pytorch.org/tutorials/intermediate/tensorboard_tutorial.html

0
Alberto Tono

Désinstallez le tensorflow. N'installez pas le tensorflow avec la torche dans le même environnement. Si vous installez tensorflow, tensorboard peut essayer d'utiliser d'abord l'API de tensorflow.

Vous pouvez alors rencontrer ce problème: L'objet 'LocalFileSystem' n'a pas d'attribut 'makedirs' .
Il existe une solution - https://github.com/pytorch/pytorch/issues/34028

  • Tensorflow désinstallé
  • Tensorboard réinstallé
    PS: Redémarrez le noyau et le tensorboard.

tensorboard 2.2.0 et torch 1.14.0 fonctionnent pour moi.

0
李金苗