【PyTorchチュートリアル】VISUALIZING MODELS, DATA, AND TRAINING WITH TENSORBOARD-3【失敗回】

GoogleColaboでやっていましたが、とうとうTensorBoardがうまく動かなくなりました。

今回は失敗回ということですね・・・

PyTorchの「VISUALIZING MODELS, DATA, AND TRAINING WITH TENSORBOARD」チュートリアルを進めていましたが、とうとうGoogleColaboで動作を続けるのが難しくなりました。エラーでどうしても解決できず、ローカル環境へ再度構築し直しているところです。失敗をさらけ出す記事となってしまいました・・・

今回はチュートリアルが進まないので、ご了承ください。同じエラーが出ている方のご参考にもなればと思います。

チュートリアルページはこちらです。

前回の記事はこちらです。

ぱんだクリップ
【PyTorchチュートリアル】VISUALIZING MODELS, DATA, AND TRAINING WITH TENSORBOARD-2 | ぱんだクリップ TensorBoardは使いこなすととても便利そうです。 ネットワーク構造の可視化が素晴らしいですね。 PyTorchチュートリアルの「VISUALIZING MODELS, DATA, AND TRAINING WITH ...

こんな人の役に立つかも

・機械学習プログラミングを勉強している人

・PyTorchのチュートリアルをしている人

・TensorBoardとPyTorchを利用しようとしている人

目次

発生した現象

チュートリアルの項目「4. Adding a “Projector” to TensorBoard」のプログラムを実行しようとしましたが、次のようなエラーが出て、正常にTensorBoardを動作させることができませんでした–;

# 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()
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-12-e5b5791ecb14> in <module>()
     26 writer.add_embedding(features,
     27                     metadata=class_labels,
---> 28                     label_img=images.unsqueeze(1))
     29 writer.close()

/usr/local/lib/python3.6/dist-packages/torch/utils/tensorboard/writer.py in add_embedding(self, mat, metadata, label_img, global_step, tag, metadata_header)
    779         save_path = os.path.join(self._get_file_writer().get_logdir(), subdir)
    780 
--> 781         fs = tf.io.gfile.get_filesystem(save_path)
    782         if fs.exists(save_path):
    783             if fs.isdir(save_path):

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

「module ‘tensorflow._api.v2.io.gfile’ has no attribute ‘get_filesystem’」というエラーで検索をしていたところ、GitHubにて次のような情報を見つけました。

GitHub
'tensorflow_core._api.v2.io.gfile' has no attribute 'get_filesystem' · Issue #30966 · pytorch/pytorc... 📚 Documentation 🐛 Bug Python == '3.7.5' torch.version == '1.4.0.dev20191208' torchvision.version == '0.5.0.dev20191209' tensorflow.version == '2.0.0' tensorboar...

ここに、環境を構築する際に、「PyTorchとTensorBoardのみインストールして、TensorFlowはインストールしてはいけない」という情報がありました。

同じトピックの下の方に、追加で以下のプログラムで一時しのぎができるとのことで、追加してみましたが、GoogleColaboでは上手く動作しませんでした。(本来は「TensorBoard」に「PROJECTOR」タブが出現するはずなのですが・・・)

次の方向性

GoogleColaboで環境を整えることができればできるかもしれませんが、より専門的な知識が必要な点と、現在の勉強の方向性からそれるという点を考えて、とりあえずはローカル環境のAnaconda、Jupyter環境で試してみようと考えています。

次回の課題

・Jupyter環境でTensorBoardの挙動を確認する。

・Jupyter環境で今回のプログラムが動作するか検証をする。

続きの記事はこちらになります。

ぱんだクリップ
【PyTorchチュートリアル】VISUALIZING MODELS, DATA, AND TRAINING WITH TENSORBOARD-4 | ぱんだクリップ なんとかローカル環境で実行できるようになりました。 TensorBoard、癖があって使い方の慣れが必要なのかも。 前回、エラーが出たところまでをローカル環境のAnaconda、Jup...
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次