前提・実現したいこと
Pythonで自作モジュールを読み込む
https://qiita.com/halhorn/items/c91497522be27bde17ce
https://github.com/halhorn/deep_dialog_tutorial
このサイトのコードを動かしたいのですが、モジュールの読み込みでエラーが出ます
githubにあるコードでは最初にディレクトリを一番上に持っていってそこからパスを入れていると思います。
training.pyの中でtransformer.pyの中のTensorflowクラスを呼び出したいです。
ですが、deepdialogフォルダをなぜかファイルとして認識しているのでは?と思っています。
発生している問題・エラーメッセージ
ModuleNotFoundError: No module named 'deepdialog'
該当のソースコード(training.py)
python
1import os 2while os.getcwd().split('/')[-1] != 'deep_dialog_tutorial': 3 os.chdir('..') 4print('current dir:', os.getcwd()) 5 6import tensorflow as tf 7from deepdialog.transformer.transformer import Transformer 8from deepdialog.transformer.preprocess.batch_generator import BatchGenerator
terminal
1current dir: /home/user/deep_dialog_tutorial 2Traceback (most recent call last): 3 File "test.py", line 9, in <module> 4 from deepdialog.transformer.transformer import Transformer 5ModuleNotFoundError: No module named 'deepdialog' 6
該当のソースコード(transformer.py)
python
1import tensorflow as tf 2from typing import List 3from .common_layer import FeedForwardNetwork, ResidualNormalizationWrapper, LayerNormalization 4from .embedding import TokenEmbedding, AddPositionalEncoding 5from .attention import MultiheadAttention, SelfAttention 6from .metrics import padded_cross_entropy_loss, padded_accuracy 7 8PAD_ID = 0 9 10 11class Transformer(tf.keras.models.Model): 12 ''' 13 Transformer モデルです。 14 ''' 15 def __init__( 16 self, 17 vocab_size: int, 18 hopping_num: int = 4, 19 head_num: int = 8, 20 hidden_dim: int = 512, 21 dropout_rate: float = 0.1, 22 max_length: int = 50, 23 *args, 24 **kwargs, 25 ) -> None: 26 super().__init__(*args, **kwargs) 27 self.vocab_size = vocab_size 28 self.hopping_num = hopping_num 29 self.head_num = head_num 30 self.hidden_dim = hidden_dim 31 self.dropout_rate = dropout_rate 32 self.max_length = max_length 33 34 self.encoder = Encoder( 35 vocab_size=vocab_size, 36 hopping_num=hopping_num, 37 head_num=head_num, 38 hidden_dim=hidden_dim, 39 dropout_rate=dropout_rate, 40 max_length=max_length, 41 ) 42 self.decoder = Decoder( 43 vocab_size=vocab_size, 44 hopping_num=hopping_num, 45 head_num=head_num, 46 hidden_dim=hidden_dim, 47 dropout_rate=dropout_rate, 48 max_length=max_length, 49 ) 50
###フォルダ構成
/deep_dialog_tutorial
..../data
..../deepdialog
......../pycache
......../datasource
......../rnnlm
......../transformer
............/training.py(実行ファイル)
............/transformer.py
..../temp
..../test
試したこと
colabでは正常に動きます
しかし、ローカルで試すと上記のエラーが出ます
補足情報(FW/ツールのバージョンなど)
tensorflow==1.14.0
回答2件
あなたの回答
tips
プレビュー