imt-ring 1.6.24__tar.gz → 1.6.25__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (119) hide show
  1. {imt_ring-1.6.24 → imt_ring-1.6.25}/PKG-INFO +1 -1
  2. {imt_ring-1.6.24 → imt_ring-1.6.25}/pyproject.toml +1 -1
  3. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/imt_ring.egg-info/PKG-INFO +1 -1
  4. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/ml/ml_utils.py +55 -0
  5. {imt_ring-1.6.24 → imt_ring-1.6.25}/readme.md +0 -0
  6. {imt_ring-1.6.24 → imt_ring-1.6.25}/setup.cfg +0 -0
  7. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/imt_ring.egg-info/SOURCES.txt +0 -0
  8. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/imt_ring.egg-info/dependency_links.txt +0 -0
  9. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/imt_ring.egg-info/requires.txt +0 -0
  10. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/imt_ring.egg-info/top_level.txt +0 -0
  11. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/__init__.py +0 -0
  12. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/algebra.py +0 -0
  13. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/algorithms/__init__.py +0 -0
  14. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/algorithms/_random.py +0 -0
  15. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/algorithms/custom_joints/__init__.py +0 -0
  16. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/algorithms/custom_joints/rr_imp_joint.py +0 -0
  17. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/algorithms/custom_joints/rr_joint.py +0 -0
  18. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/algorithms/custom_joints/rsaddle_joint.py +0 -0
  19. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/algorithms/custom_joints/suntay.py +0 -0
  20. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/algorithms/dynamics.py +0 -0
  21. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/algorithms/generator/__init__.py +0 -0
  22. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/algorithms/generator/base.py +0 -0
  23. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/algorithms/generator/batch.py +0 -0
  24. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/algorithms/generator/finalize_fns.py +0 -0
  25. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/algorithms/generator/motion_artifacts.py +0 -0
  26. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/algorithms/generator/pd_control.py +0 -0
  27. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/algorithms/generator/setup_fns.py +0 -0
  28. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/algorithms/generator/types.py +0 -0
  29. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/algorithms/jcalc.py +0 -0
  30. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/algorithms/kinematics.py +0 -0
  31. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/algorithms/sensors.py +0 -0
  32. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/base.py +0 -0
  33. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/io/__init__.py +0 -0
  34. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/io/examples/branched.xml +0 -0
  35. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/io/examples/exclude/knee_trans_dof.xml +0 -0
  36. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/io/examples/exclude/standard_sys.xml +0 -0
  37. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/io/examples/exclude/standard_sys_rr_imp.xml +0 -0
  38. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/io/examples/inv_pendulum.xml +0 -0
  39. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/io/examples/knee_flexible_imus.xml +0 -0
  40. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/io/examples/spherical_stiff.xml +0 -0
  41. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/io/examples/symmetric.xml +0 -0
  42. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/io/examples/test_all_1.xml +0 -0
  43. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/io/examples/test_all_2.xml +0 -0
  44. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/io/examples/test_ang0_pos0.xml +0 -0
  45. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/io/examples/test_control.xml +0 -0
  46. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/io/examples/test_double_pendulum.xml +0 -0
  47. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/io/examples/test_free.xml +0 -0
  48. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/io/examples/test_kinematics.xml +0 -0
  49. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/io/examples/test_morph_system/four_seg_seg1.xml +0 -0
  50. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/io/examples/test_morph_system/four_seg_seg3.xml +0 -0
  51. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/io/examples/test_randomize_position.xml +0 -0
  52. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/io/examples/test_sensors.xml +0 -0
  53. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/io/examples/test_three_seg_seg2.xml +0 -0
  54. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/io/examples.py +0 -0
  55. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/io/test_examples.py +0 -0
  56. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/io/xml/__init__.py +0 -0
  57. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/io/xml/abstract.py +0 -0
  58. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/io/xml/from_xml.py +0 -0
  59. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/io/xml/test_from_xml.py +0 -0
  60. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/io/xml/test_to_xml.py +0 -0
  61. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/io/xml/to_xml.py +0 -0
  62. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/maths.py +0 -0
  63. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/ml/__init__.py +0 -0
  64. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/ml/base.py +0 -0
  65. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/ml/callbacks.py +0 -0
  66. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/ml/optimizer.py +0 -0
  67. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/ml/params/0x13e3518065c21cd8.pickle +0 -0
  68. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/ml/params/0x1d76628065a71e0f.pickle +0 -0
  69. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/ml/ringnet.py +0 -0
  70. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/ml/rnno_v1.py +0 -0
  71. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/ml/train.py +0 -0
  72. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/ml/training_loop.py +0 -0
  73. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/rendering/__init__.py +0 -0
  74. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/rendering/base_render.py +0 -0
  75. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/rendering/mujoco_render.py +0 -0
  76. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/rendering/vispy_render.py +0 -0
  77. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/rendering/vispy_visuals.py +0 -0
  78. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/sim2real/__init__.py +0 -0
  79. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/sim2real/sim2real.py +0 -0
  80. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/spatial.py +0 -0
  81. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/sys_composer/__init__.py +0 -0
  82. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/sys_composer/delete_sys.py +0 -0
  83. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/sys_composer/inject_sys.py +0 -0
  84. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/sys_composer/morph_sys.py +0 -0
  85. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/utils/__init__.py +0 -0
  86. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/utils/backend.py +0 -0
  87. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/utils/batchsize.py +0 -0
  88. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/utils/colab.py +0 -0
  89. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/utils/dataloader.py +0 -0
  90. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/utils/dataloader_torch.py +0 -0
  91. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/utils/hdf5.py +0 -0
  92. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/utils/normalizer.py +0 -0
  93. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/utils/path.py +0 -0
  94. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/utils/randomize_sys.py +0 -0
  95. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/utils/register_gym_envs/__init__.py +0 -0
  96. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/utils/register_gym_envs/saddle.py +0 -0
  97. {imt_ring-1.6.24 → imt_ring-1.6.25}/src/ring/utils/utils.py +0 -0
  98. {imt_ring-1.6.24 → imt_ring-1.6.25}/tests/test_algebra.py +0 -0
  99. {imt_ring-1.6.24 → imt_ring-1.6.25}/tests/test_base.py +0 -0
  100. {imt_ring-1.6.24 → imt_ring-1.6.25}/tests/test_custom_joints.py +0 -0
  101. {imt_ring-1.6.24 → imt_ring-1.6.25}/tests/test_dynamics.py +0 -0
  102. {imt_ring-1.6.24 → imt_ring-1.6.25}/tests/test_generator.py +0 -0
  103. {imt_ring-1.6.24 → imt_ring-1.6.25}/tests/test_jcalc.py +0 -0
  104. {imt_ring-1.6.24 → imt_ring-1.6.25}/tests/test_jit.py +0 -0
  105. {imt_ring-1.6.24 → imt_ring-1.6.25}/tests/test_kinematics.py +0 -0
  106. {imt_ring-1.6.24 → imt_ring-1.6.25}/tests/test_maths.py +0 -0
  107. {imt_ring-1.6.24 → imt_ring-1.6.25}/tests/test_ml_utils.py +0 -0
  108. {imt_ring-1.6.24 → imt_ring-1.6.25}/tests/test_motion_artifacts.py +0 -0
  109. {imt_ring-1.6.24 → imt_ring-1.6.25}/tests/test_pd_control.py +0 -0
  110. {imt_ring-1.6.24 → imt_ring-1.6.25}/tests/test_quickstart_example.py +0 -0
  111. {imt_ring-1.6.24 → imt_ring-1.6.25}/tests/test_random.py +0 -0
  112. {imt_ring-1.6.24 → imt_ring-1.6.25}/tests/test_randomize.py +0 -0
  113. {imt_ring-1.6.24 → imt_ring-1.6.25}/tests/test_rcmg.py +0 -0
  114. {imt_ring-1.6.24 → imt_ring-1.6.25}/tests/test_render.py +0 -0
  115. {imt_ring-1.6.24 → imt_ring-1.6.25}/tests/test_sensors.py +0 -0
  116. {imt_ring-1.6.24 → imt_ring-1.6.25}/tests/test_sim2real.py +0 -0
  117. {imt_ring-1.6.24 → imt_ring-1.6.25}/tests/test_sys_composer.py +0 -0
  118. {imt_ring-1.6.24 → imt_ring-1.6.25}/tests/test_train.py +0 -0
  119. {imt_ring-1.6.24 → imt_ring-1.6.25}/tests/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: imt-ring
3
- Version: 1.6.24
3
+ Version: 1.6.25
4
4
  Summary: RING: Recurrent Inertial Graph-based Estimator
5
5
  Author-email: Simon Bachhuber <simon.bachhuber@fau.de>
6
6
  Project-URL: Homepage, https://github.com/SimiPixel/ring
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "imt-ring"
7
- version = "1.6.24"
7
+ version = "1.6.25"
8
8
  authors = [
9
9
  { name="Simon Bachhuber", email="simon.bachhuber@fau.de" },
10
10
  ]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: imt-ring
3
- Version: 1.6.24
3
+ Version: 1.6.25
4
4
  Summary: RING: Recurrent Inertial Graph-based Estimator
5
5
  Author-email: Simon Bachhuber <simon.bachhuber@fau.de>
6
6
  Project-URL: Homepage, https://github.com/SimiPixel/ring
@@ -243,5 +243,60 @@ def save_model_tf(jax_func, path: str, *input, validate: bool = True):
243
243
  )
244
244
 
245
245
 
246
+ def to_onnx(
247
+ fn,
248
+ output_path,
249
+ *args: tuple[np.ndarray],
250
+ in_args_names: Optional[list[str]] = None,
251
+ out_args_names: Optional[list[str]] = None,
252
+ validate: bool = False,
253
+ ):
254
+ import jax.experimental.jax2tf as jax2tf
255
+ import tensorflow as tf
256
+ import tf2onnx
257
+
258
+ tf_fn = tf.function(jax2tf.convert(fn, enable_xla=False))
259
+ tf_args = [tf.TensorSpec(np.shape(x), np.result_type(x)) for x in args]
260
+ tf2onnx.convert.from_function(
261
+ tf_fn, input_signature=tf_args, output_path=output_path
262
+ )
263
+
264
+ if in_args_names is not None or out_args_names is not None:
265
+ import onnx
266
+ from sor4onnx import rename
267
+
268
+ model = onnx.load(output_path)
269
+
270
+ if in_args_names is not None:
271
+ old_names = [inp.name for inp in model.graph.input]
272
+ assert len(old_names) == len(in_args_names)
273
+ for old_name, new_name in zip(old_names, in_args_names):
274
+ model = rename([old_name, new_name], None, model, None, mode="inputs")
275
+
276
+ if out_args_names is not None:
277
+ old_names = [out.name for out in model.graph.output]
278
+ assert len(old_names) == len(out_args_names)
279
+ for old_name, new_name in zip(old_names, out_args_names):
280
+ model = rename([old_name, new_name], None, model, None, mode="outputs")
281
+
282
+ onnx.save(model, output_path)
283
+
284
+ if validate:
285
+ import onnxruntime as ort
286
+
287
+ output_jax = fn(*args)
288
+ session = ort.InferenceSession(output_path)
289
+ input_names = [inp.name for inp in session.get_inputs()]
290
+ output_onnx = session.run(
291
+ None, {name: np.array(arg) for name, arg in zip(input_names, args)}
292
+ )
293
+
294
+ for o1, o2 in zip(output_jax, output_onnx):
295
+ assert np.allclose(o1, o2, atol=1e-5, rtol=1e-5)
296
+
297
+ if out_args_names is not None:
298
+ assert [out.name for out in session.get_outputs()] == out_args_names
299
+
300
+
246
301
  def _unknown_link_names(N: int):
247
302
  return [f"link{i}" for i in range(N)]
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes