質問: ### 前提・実現したいこと module名とディレクトリ名を異なるようにしたのに、has no attributeがでてきた。 ### 発生している問題・エラーメッセージ ``` module 'layers.noisemaker' has no attribute 'gate' ``` ### 該当のソースコード ``` #module名はnoisemakerです。その後別のmoduleでgateを呼び出しました。 #%% import matplotlib.pyplot as plt import numpy as np def gate(a): np.random.seed(a) x_xor=np.random.randn(200,2) y_xor=np.logical_xor(x_xor[:,0]>0,x_xor[:,1]>0) y_xor=np.where(y_xor,1,-1) plt.scatter(x_xor[y_xor==1,0],x_xor[y_xor==1,1],c='b',marker='x',label='1') plt.scatter(x_xor[y_xor==-1,0],x_xor[y_xor==-1,1],c='r',marker='s',label='-1') plt.xlim([-3,3]) plt.ylim([-3,3]) plt.legend(loc='best') plt.tight_layout() plt.show() return x_xor return y_xor ↑layers内にこのmoduleを入れています。その後SVM_in_sklearnを開いて実行しました。以下がそのmoduleです。↓ #%% from sklearn import datasets import numpy as np import matplotlib.pyplot as plt import layers from layers import decisionregionplotfunction as drp from layers import noisemaker as noise from sklearn.svm import SVC #%% #カーネルトリック svm=SVC(kernel='rbf',random_state=1,gamma=0.1,C=10.0) X,Y=noise.gate(a=1).x_xor,noise.gate(a=1).y_xor svm.fit(X,Y) drp.plot_decision_regions(X,Y,classifier=svm) plt.tight_layout() plt.show() ``` ### 試したこと moduleの名前とgateの名前を色々変えてみましたがだめでした。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
回答: とりあえず、`SVM_in_sklearn`(かな?)の先頭に ``` import inspect from layers import noisemaker as noise print("ファイルの場所") print(inspect.getfile(noise)) print("中身") print(inspect.getsource(noise)) ``` などと書いて、意図しているファイルと一致しているか確認してみると良いのではないでしょうか。