GoogleColaboでやっていましたが、とうとうTensorBoardがうまく動かなくなりました。
今回は失敗回ということですね・・・
PyTorchの「VISUALIZING MODELS, DATA, AND TRAINING WITH TENSORBOARD」チュートリアルを進めていましたが、とうとうGoogleColaboで動作を続けるのが難しくなりました。エラーでどうしても解決できず、ローカル環境へ再度構築し直しているところです。失敗をさらけ出す記事となってしまいました・・・
今回はチュートリアルが進まないので、ご了承ください。同じエラーが出ている方のご参考にもなればと思います。
チュートリアルページはこちらです。
前回の記事はこちらです。
こんな人の役に立つかも
・機械学習プログラミングを勉強している人
・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にて次のような情報を見つけました。
ここに、環境を構築する際に、「PyTorchとTensorBoardのみインストールして、TensorFlowはインストールしてはいけない」という情報がありました。
同じトピックの下の方に、追加で以下のプログラムで一時しのぎができるとのことで、追加してみましたが、GoogleColaboでは上手く動作しませんでした。(本来は「TensorBoard」に「PROJECTOR」タブが出現するはずなのですが・・・)
次の方向性
GoogleColaboで環境を整えることができればできるかもしれませんが、より専門的な知識が必要な点と、現在の勉強の方向性からそれるという点を考えて、とりあえずはローカル環境のAnaconda、Jupyter環境で試してみようと考えています。
次回の課題
・Jupyter環境でTensorBoardの挙動を確認する。
・Jupyter環境で今回のプログラムが動作するか検証をする。
続きの記事はこちらになります。