В настоящее время я тренируюсь агентом ML, чтобы играть в игру, которую я разрабатываю в Unity. В настоящее время у меня возникают проблемы с преобразованием обученных агентских файлов в формат ONNX, чтобы они могли быть интегрированы с Unity. Каждый раз, когда я запускаю свой сценарий конверсии, я получаю следующее: < /p>
File "C:\Users\alpha\Carrom_2Dnew\Lib\site-packages\onnx\__init__.py", line 77, in
from onnx.onnx_cpp2py_export import ONNX_ML
ImportError: DLL load failed while importing onnx_cpp2py_export: A dynamic link library (DLL) initialization routine failed.
< /code>
Вот мой код (это шаблон с веб-сайта Stable-baselines3 с парой изменений, я также пытался сделать свой собственный без каких-либо пакетов единства или среды, и ничего не изменилось ): < /p>
import torch as th
from typing import Tuple
from my_env import MyEnv
#from onnx import onnx_cpp2py_export
import onnx
#from torch import onnx
from peaceful_pie.unity_comms import UnityComms
from my_env import MyEnv
from stable_baselines3.common.monitor import Monitor
from stable_baselines3 import PPO
from stable_baselines3.common.policies import BasePolicy
class OnnxableSB3Policy(th.nn.Module):
def __init__(self, policy: BasePolicy):
super().__init__()
self.policy = policy
def forward(self, observation: th.Tensor) -> Tuple[th.Tensor, th.Tensor, th.Tensor]:
# NOTE: Preprocessing is included, but postprocessing
# (clipping/inscaling actions) is not,
# If needed, you also need to transpose the images so that they are channel first
# use deterministic=False if you want to export the stochastic policy
# policy() returns `actions, values, log_prob` for PPO
return self.policy(observation, deterministic=True)
#model = PPO("MlpPolicy", "Pendulum-v1")
unity_comms = UnityComms(port=9000)
my_env = MyEnv(unity_comms=unity_comms)
my_env = Monitor(my_env)
PPO("MlpPolicy",env=my_env).save("C:/Users/alpha/Carrom_2Dnew/Carrom_2Dnew.zip")
model = PPO.load("C:/Users/alpha/Carrom_2Dnew/Carrom_2Dnew.zip", device="cpu")
onnx_policy = OnnxableSB3Policy(model.policy)
observation_size = model.observation_space.shape
dummy_input = th.randn(1, *observation_size)
th.onnx.export(
onnx_policy,
dummy_input,
"my_ppo_model.onnx",
opset_version=17,
input_names=["input"],
)
##### Load and test with onnx
import onnx
import onnxruntime as ort
import numpy as np
onnx_path = "my_ppo_model.onnx"
onnx_model = onnx.load(onnx_path)
onnx.checker.check_model(onnx_model)
observation = np.zeros((1, *observation_size)).astype(np.float32)
ort_sess = ort.InferenceSession(onnx_path)
actions, values, log_prob = ort_sess.run(None, {"input": observation})
print(actions, values, log_prob)
# Check that the predictions are the same
with th.no_grad():
print(model.policy(th.as_tensor(observation), deterministic=True))
< /code>
Вот пакеты, которые я в настоящее время установил: < /p>
certifi 2024.8.30
charset-normalizer 3.4.0
chili 1.8.0
cloudpickle 3.1.0
coloredlogs 15.0.1
contourpy 1.3.0
cycler 0.12.1
Farama-Notifications 0.0.4
filelock 3.16.1
flatbuffers 25.1.24
fonttools 4.54.1
fsspec 2024.10.0
gymnasium 0.29.1
humanfriendly 10.0
idna 3.10
Jinja2 3.1.4
kiwisolver 1.4.7
MarkupSafe 3.0.2
matplotlib 3.9.2
mpmath 1.3.0
networkx 3.4.2
numpy 1.26.4
onnx 1.17.0
onnxruntime 1.20.1
packaging 24.1
pandas 2.2.3
peaceful-pie 2.1.0
pillow 11.0.0
pip 24.3.1
protobuf 5.29.3
pyparsing 3.2.0
pyreadline3 3.5.4
python-dateutil 2.9.0.post0
pytz 2024.2
requests 2.32.3
setuptools 75.3.0
six 1.16.0
stable_baselines3 2.3.2
sympy 1.13.1
torch 2.5.1
typing_extensions 4.12.2
tzdata 2024.2
urllib3 2.2.3
wheel 0.44.0
< /code>
До сих пор я пытался переустановить каждую комбинацию версий ONNX и OnNxruntime, редактируя переменные моей среды, чтобы включить путь к DDL, и даже переписал другой скрипт с нуля и до сих пор имеет одинаковый результат Полем Ошибка всегда возникает при попытке экспорта. Любая помощь ценится, и если вам нужна дополнительная информация, я буду рад предоставить.
Подробнее здесь: https://stackoverflow.com/questions/794 ... etting-the
Обучение агента ML с использованием стабильных базовых показателей3, Python и Unity. Продолжайте получать такую же оши ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Создание папки Tensorboard с помощью стабильных базовых показателей не работает
Anonymous » » в форуме Python - 0 Ответы
- 27 Просмотры
-
Последнее сообщение Anonymous
-