evolutionary-policy-optimization 0.2.18__tar.gz → 0.2.19__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: evolutionary-policy-optimization
3
- Version: 0.2.18
3
+ Version: 0.2.19
4
4
  Summary: EPO - Pytorch
5
5
  Project-URL: Homepage, https://pypi.org/project/evolutionary-policy-optimization/
6
6
  Project-URL: Repository, https://github.com/lucidrains/evolutionary-policy-optimization
@@ -323,9 +323,24 @@ That's it
323
323
  }
324
324
  ```
325
325
 
326
+ ```bibtex
327
+ @article{Zhu2025Hybrid,
328
+ author = {Zhu, Zimo and Yu, Chuanqiang and Wang, Junti},
329
+ title = {A Hybrid Genetic Algorithm and Proximal Policy Optimization System for Efficient Multi-Agent Task Allocation},
330
+ journal = {Systems},
331
+ volume = {13},
332
+ year = {2025},
333
+ number = {6},
334
+ article-number = {453},
335
+ url = {https://www.mdpi.com/2079-8954/13/6/453},
336
+ issn = {2079-8954}
337
+ ```
338
+
326
339
  ```bibtex
327
340
  @misc{kedia2026simtoolrealobjectcentricpolicyzeroshot,
328
341
  title = {SimToolReal: An Object-Centric Policy for Zero-Shot Dexterous Tool Manipulation},
342
+ @misc{kedia2026simtoolrealobjectcentricpolicyzeroshot,
343
+ title = {SimToolReal: An Object-Centric Policy for Zero-Shot Dexterous Tool Manipulation},
329
344
  author = {Kushal Kedia and Tyler Ga Wei Lum and Jeannette Bohg and C. Karen Liu},
330
345
  year = {2026},
331
346
  eprint = {2602.16863},
@@ -343,6 +358,31 @@ That's it
343
358
  year = {2018},
344
359
  volume = {abs/1802.06070},
345
360
  url = {https://arxiv.org/abs/1802.06070}
361
+ url = {https://arxiv.org/abs/2602.16863},
362
+ ```
363
+
364
+ ```bibtex
365
+ @article{Zhu2025Hybrid,
366
+ author = {Zhu, Zimo and Yu, Chuanqiang and Wang, Junti},
367
+ title = {A Hybrid Genetic Algorithm and Proximal Policy Optimization System for Efficient Multi-Agent Task Allocation},
368
+ journal = {Systems},
369
+ volume = {13},
370
+ year = {2025},
371
+ number = {6},
372
+ article-number = {453},
373
+ url = {https://www.mdpi.com/2079-8954/13/6/453},
374
+ issn = {2079-8954}
375
+ ```
376
+
377
+ ```bibtex
378
+ @misc{kedia2026simtoolrealobjectcentricpolicyzeroshot,
379
+ title = {SimToolReal: An Object-Centric Policy for Zero-Shot Dexterous Tool Manipulation},
380
+ author = {Kushal Kedia and Tyler Ga Wei Lum and Jeannette Bohg and C. Karen Liu},
381
+ year = {2026},
382
+ eprint = {2602.16863},
383
+ archivePrefix = {arXiv},
384
+ primaryClass = {cs.RO},
385
+ url = {https://arxiv.org/abs/2602.16863},
346
386
  }
347
387
  ```
348
388
 
@@ -265,9 +265,24 @@ That's it
265
265
  }
266
266
  ```
267
267
 
268
+ ```bibtex
269
+ @article{Zhu2025Hybrid,
270
+ author = {Zhu, Zimo and Yu, Chuanqiang and Wang, Junti},
271
+ title = {A Hybrid Genetic Algorithm and Proximal Policy Optimization System for Efficient Multi-Agent Task Allocation},
272
+ journal = {Systems},
273
+ volume = {13},
274
+ year = {2025},
275
+ number = {6},
276
+ article-number = {453},
277
+ url = {https://www.mdpi.com/2079-8954/13/6/453},
278
+ issn = {2079-8954}
279
+ ```
280
+
268
281
  ```bibtex
269
282
  @misc{kedia2026simtoolrealobjectcentricpolicyzeroshot,
270
283
  title = {SimToolReal: An Object-Centric Policy for Zero-Shot Dexterous Tool Manipulation},
284
+ @misc{kedia2026simtoolrealobjectcentricpolicyzeroshot,
285
+ title = {SimToolReal: An Object-Centric Policy for Zero-Shot Dexterous Tool Manipulation},
271
286
  author = {Kushal Kedia and Tyler Ga Wei Lum and Jeannette Bohg and C. Karen Liu},
272
287
  year = {2026},
273
288
  eprint = {2602.16863},
@@ -285,6 +300,31 @@ That's it
285
300
  year = {2018},
286
301
  volume = {abs/1802.06070},
287
302
  url = {https://arxiv.org/abs/1802.06070}
303
+ url = {https://arxiv.org/abs/2602.16863},
304
+ ```
305
+
306
+ ```bibtex
307
+ @article{Zhu2025Hybrid,
308
+ author = {Zhu, Zimo and Yu, Chuanqiang and Wang, Junti},
309
+ title = {A Hybrid Genetic Algorithm and Proximal Policy Optimization System for Efficient Multi-Agent Task Allocation},
310
+ journal = {Systems},
311
+ volume = {13},
312
+ year = {2025},
313
+ number = {6},
314
+ article-number = {453},
315
+ url = {https://www.mdpi.com/2079-8954/13/6/453},
316
+ issn = {2079-8954}
317
+ ```
318
+
319
+ ```bibtex
320
+ @misc{kedia2026simtoolrealobjectcentricpolicyzeroshot,
321
+ title = {SimToolReal: An Object-Centric Policy for Zero-Shot Dexterous Tool Manipulation},
322
+ author = {Kushal Kedia and Tyler Ga Wei Lum and Jeannette Bohg and C. Karen Liu},
323
+ year = {2026},
324
+ eprint = {2602.16863},
325
+ archivePrefix = {arXiv},
326
+ primaryClass = {cs.RO},
327
+ url = {https://arxiv.org/abs/2602.16863},
288
328
  }
289
329
  ```
290
330
 
@@ -7,6 +7,7 @@ import torch.nn.functional as F
7
7
  from torch.func import vmap, functional_call
8
8
  from torch.nn import Module, ParameterList
9
9
 
10
+ import einx
10
11
  from einops import rearrange, reduce, repeat
11
12
 
12
13
  def exists(v):
@@ -31,11 +32,12 @@ def shrink_and_perturb_(
31
32
 
32
33
  def crossover_weights(
33
34
  w1, w2,
35
+ alpha = 0.5,
34
36
  shrink_perturb = False,
35
37
  shrink_factor = 0.4,
36
38
  perturb_factor = 0.1
37
39
  ):
38
- assert w2.shape == w2.shape
40
+ assert w1.shape == w2.shape
39
41
 
40
42
  no_batch = w1.ndim == 2
41
43
 
@@ -58,12 +60,17 @@ def crossover_weights(
58
60
  u1, s1, v1 = torch.svd(w1)
59
61
  u2, s2, v2 = torch.svd(w2)
60
62
 
63
+ sign = einx.dot('b j d, b j d -> b d', v1, v2).sign()
64
+
65
+ u2 = einx.multiply('b i d, b d -> b i d', u2, sign)
66
+ v2 = einx.multiply('b j d, b d -> b j d', v2, sign)
67
+
61
68
  batch_randperm = torch.randn((batch, rank), device = w1.device).argsort(dim = -1)
62
- mask = batch_randperm < (rank // 2)
69
+ mask = batch_randperm < int(rank * alpha)
63
70
 
64
- u = torch.where(mask[:, None, :], u1, u2)
65
- s = torch.where(mask, s1, s2)
66
- v = torch.where(mask[:, :, None], v1, v2)
71
+ u = einx.where('b d, b i d, b i d -> b i d', mask, u1, u2)
72
+ s = einx.where('b d, b d, b d -> b d', mask, s1, s2)
73
+ v = einx.where('b d, b j d, b j d -> b j d', mask, v1, v2)
67
74
 
68
75
  out = u @ torch.diag_embed(s) @ v.mT
69
76
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "evolutionary-policy-optimization"
3
- version = "0.2.18"
3
+ version = "0.2.19"
4
4
  description = "EPO - Pytorch"
5
5
  authors = [
6
6
  { name = "Phil Wang", email = "lucidrains@gmail.com" }