How to run Python (Pytorch) Code in MATLAB

18 vues (au cours des 30 derniers jours)
SH
SH le 16 Mar 2023
Commenté : Frederick le 11 Avr 2025
Hello, I hope you are doing well. I have the following Python(pytorch) code which is running in an Anaconda environment. I want it to run it on MATLAB
I have tried the following but it does not work Can any one help me with that.?
pyenv("Version","C:\Users\DELL\anaconda3\envs\myenv\python.exe")
ans =
PythonEnvironment with properties:
Version: "3.8"
Executable: "C:\Users\DELL\anaconda3\envs\myenv\python.exe"
Library: "C:\Users\DELL\anaconda3\envs\myenv\python38.dll"
Home: "C:\Users\DELL\anaconda3\envs\myenv"
Status: NotLoaded
ExecutionMode: InProcess
Here is the following code (PythonScript.py)
import torch
import numpy as np
import matplotlib.pyplot as plt
print('Check GPU Availble=',torch.cuda.is_available())
print('How many GPU Availble=',torch.cuda.device_count())
print('Index of Current GPU=',torch.cuda.current_device())
print('Name of the Current GPU Used=',torch.cuda.get_device_name(0))
array = np.loadtxt('Dataset1.csv', delimiter=',')
twofeatures = array[:, [1, 3]]
#print(twofeatures)
torchfeatures = torch.from_numpy(twofeatures)
gpufeature = torchfeatures.cuda()
gpufeature = gpufeature.to(torch.float)
from fast_pytorch_kmeans import KMeans
kmeans = KMeans(n_clusters=30, mode='euclidean', verbose=1)
labels = kmeans.fit_predict(gpufeature)
#print(labels)
index = labels.cpu().data.numpy()
#print(index)
plt.scatter(array[:, [0]], array[:, [1]], c=index, s=10, cmap="jet")
plt.show()
pyrun(PythonScript.py);
Getting the following error
Error using __init__><module>
Python Error: OSError: [WinError 127] The specified procedure could not be found. Error
loading "C:\Users\DELL\anaconda3\envs\myenv\lib\site-packages\torch\lib\shm.dll" or one of
its dependencies.
Error in <string>><module> (line 1)
Can anybody help me with that
  1 commentaire
Frederick
Frederick le 11 Avr 2025
I got this same error with Matlab R2022b, Python 3.10, and torch 2.6.0, and pyenv(..., ExecutionMode="InProcess"). I get the error when I use torch, but not if I use numpy. I did not get the error after switching to ExecutionMode="OutOfProcess". It works, but for my use case ExecutionMode="OutOfProcess" is much slower. I switched to Matlab R2023a, and ExecutionMode="InProcess" works! I am still investigating, but it seems there is some sort of DLL incompatibility between Matlab R2022b and pytorch 2.6.0. In my experience the error messages for such DLL problems are never very specific - the real incompatibility is usually deeper in than the error message indicates. The potential for this problem is hinted at here https://www.mathworks.com/help/matlab/ref/pyenv.html

Connectez-vous pour commenter.

Réponses (1)

Sivylla Paraskevopoulou
Sivylla Paraskevopoulou le 21 Mar 2023
Can you try the following command to run your Python file?
pyrunfile("PythonScript.py")
  1 commentaire
Narayan
Narayan le 30 Juin 2024
Modifié(e) : Narayan le 30 Juin 2024
I have used the same command to run the python file to call the pytorch model. But it was very slow during iteratively calling the pyrunfile(" PythonScript.py") command during simulations. Is there any better way in matlab ?

Connectez-vous pour commenter.

Catégories

En savoir plus sur Call Python from MATLAB dans Help Center et File Exchange

Produits


Version

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by