python call matlab メソッドの詳細
1. pythonのバージョンとmatlabのバージョンの対応表
私はMACにAnaconda3をインストールしましたが、それにはpythonのバージョン3.8が付属しています。pythonのバージョンとmatlabのバージョンの対応を利用すると、少なくともR2020b以上をダウンロードする必要があったので、matlabのバージョンR2021bをインストールしたところ、matlabとpythonのバージョンが確実に対応し、pythonでmatlabコードを呼び出すことができるようになりました。
2. matlab.engineをインポートする際の問題点
pythonでimport matlab.engineを使用すると、プロンプトが表示されます。ImportError: matlab.engineという名前のモジュールがありません。この問題を解決するには、次のステップから始める必要があります。
(1) matlabのコマンドラインウィンドウで、次のように入力します。
matlabroot
matlabのインストールディレクトリを取得します。
>> matlabroot
ans =
'/Applications/MATLAB_R2021b.app'
>>
次に、MACに付属のターミナルで、matlabのインストールディレクトリの中のpythonディレクトリに移動します。
d@DdeMacBook-Pro ~ % cd /Applications/MATLAB_R2021b.app/extern/engines/python
d@DdeMacBook-Pro python %
そして、以下の動作を順次行っていく。
python setup.py build --build-base="builddir" install
python setup.py install --prefix="installdir"
python setup.py build --build-base="builddir" install --prefix="installdir"
python setup.py install --user
上記の操作で、以下のようなフォルダができあがります。
(2) 上記の操作の後、python は matlab.engine モジュールがインポートできないと表示するので、次の操作を行う必要があります。
/Applications/MATLAB_R2021b.app/extern/engines/python/build/lib
フォルダを、python のパッケージのインストールディレクトリに追加します。
/Users/dpp/opt/anaconda3/lib/python3.8/site-packages/
これにより、matlab.engineモジュールのインポートに失敗する問題が解決されます。
(3)ウィンドウズの場合は、以下の2つのブログを参考にしてください。参考1、参考2
3. The code reports an error: Please use torch.load with map_location=torch.device('cpu') to map your storages to the CPU
pytorchを使用してコードでモデルをロードするとき、コンピュータがGPUを持っていない場合、エラーを報告します。ストレージをCPUにマップするためにtorch.load with map_location=torch.device('cpu') を使用してください。この場合、モデルをロードするコードを以下のように修正する必要があります。
修正前
checkpoint = torch.load(file_name)
修正しました。
checkpoint = torch.load(file_name, map_location='cpu')
関連
-
[解決済み] builtins.TypeError: strでなければならない、bytesではない
-
[解決済み】Python TypeError: object.__format__ に渡される空でないフォーマット文字列
-
[解決済み】「pymysql」という名前のモジュールがない
-
[解決済み] ImportError.を防ぐには?No module named oauth2client.client" on Google App Engine?
-
[解決済み] 警告 <RuntimeWarning: invalid value encountered in sqrt> が表示されるのですが。
-
[解決済み] インテル® MKL FATAL ERROR。libmkl_avx2.so または libmkl_def.so をロードできません。
-
[解決済み] 文字列から単語のリストを削除する
-
[解決済み] Theano隠れ層活性化関数
-
[解決済み] urlクエリで%7Dという文字は何を意味するのですか?
-
AttributeError: 'list' オブジェクトには 'ndim' という属性がありません。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】「Symbol not found / Expected in: flat namespace」は実際にはどういう意味ですか?
-
[解決済み] テールリカーシオンフィボナッチ
-
[解決済み] ハンドシェイクに失敗し、-1、SSL エラーコード 1、net_error -201 を返しました。
-
[解決済み] キーボード入力でタイムアウト?
-
[解決済み] kerasのFlatten()とGlobalAveragePooling2D()の違いは何ですか?
-
[解決済み] NumPyの配列で、N個の最大値のインデックスを得るには?
-
[解決済み] Matplotlib のプロット: 軸、凡例、空白を削除する
-
Python がループの外側で 'break' を報告する理由
-
PIL経由で画像を読み込むとpythonエラーが発生します。OSError: 画像ファイルを特定できない
-
[Python] TypeError: 'NoneType' オブジェクトは添え字を付けられません。