Custom pseudo-operations for generic rewriting
Los mantenedores suelen responder en 4 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 28/100
Línea de trabajo
Comienza leyendo los archivos adjuntos cusops2ons.py.txt y test_generic_as_wrap.py.txt; después, inspecciona el uso del rewriter de onnxscript en torno a Opset, script, Op y op_schema. Determina si las pseudooperaciones personalizadas pueden participar en la reescritura genérica y documenta un ejemplo funcional de nodo personalizado, con una prueba que muestre el comportamiento de reescritura previsto.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
This text organized as
- Problem
- Solution
- This issue subject
Problem to solve
I want element-wise operations move above their commutatives (friends). See picture:
I don't want to encode every possible interchange pair, so must be generic element-wise and generic friend. Can I have it with current onnxscript (0.2.2) rewriter?
- Solution
Use meta-abc node pairs like this:
In the attachment, there is prototype implementation.
It moves elementwise operations (ReLU and Tanh) above Identity and Flatten
For now, we encode elementwise wrappers as [Split(axis=20), Sub]
and wrappers of their friend as [Split(axis=30), Sub]
What do you think about this approach to generics?
- The issue
Well, it works! But using Split and Sub as replacement to ABC_pre and ABC_post is obviously bad.
I actually tried to create custom pseudo-operation, but failed.
As I create op like this:
my_opset = Opset("com.mydomain", 15)
@script(my_opset)
def joy_of_relu( x:FLOAT ) -> FLOAT:
y = op.Relu(x)
return op.Relu(y)
opsch = joy_of_relu.op_schema
shiny_new_op = Op(
opset=my_opset, name="relurelu", op_schema=opsch
)
it not work with rewriter, also I tried onnxruntime_extensions.onnx_op
So, if it is possible, it would be great to have example of using rewriter with custom nodes.
- Lenguaje dominante
- Python
- Estrellas
- 457
- Forks
- 149
- Merge medio
- 3 d 20 h
- PR fusionados (30 d)
- 22
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de microsoft/onnxscript
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
microsoft/onnxscript#3155 ·
Los mantenedores suelen responder en 4 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
microsoft/onnxscript#3003 · 3 comentarios ·
Los mantenedores suelen responder en 4 días
-
CI : Pin github actions to full commit SHAPosiblemente ocupada @Aniketsy la tomó hace 184 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
microsoft/onnxscript#2903 · 6 comentarios ·
Los mantenedores suelen responder en 4 días
-
Dificultad 3/5 1-2 días Aptitud para principiantes 72/100
microsoft/onnxscript#3156 ·
Los mantenedores suelen responder en 4 días
-
Dificultad 4/5 3-5 días Aptitud para principiantes 68/100
microsoft/onnxscript#3154 ·
Los mantenedores suelen responder en 4 días
Todos los issues de microsoft/onnxscript
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Los mantenedores suelen responder en 1 día
-
bug docs severity:low
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
Los mantenedores suelen responder en 1 día
-
docs good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
-
bug ready-for-dev
Dificultad 1/5 1-3 horas Aptitud para principiantes 92/100
OpenHands/extensions#897 ·
Los mantenedores suelen responder en 1 día