Código para la publicación del blog The Annotated Transformer:
http://nlp.seas.harvard.edu/annotated-transformer/
Utilice requirements.txt
para instalar dependencias de la biblioteca con pip:
pip install -r requirements.txt
El transformador anotado se crea utilizando jupytext.
Los cuadernos normales plantean problemas para el control de fuentes: las salidas de las celdas terminan en el historial del repositorio y las diferencias entre confirmaciones son difíciles de examinar. Al usar jupytext, hay una secuencia de comandos de Python (archivo .py
) que el complemento jupytext mantiene automáticamente sincronizado con el archivo del cuaderno.
La secuencia de comandos de Python confirmada contiene todo el contenido de la celda y se puede utilizar para generar el archivo del cuaderno. El script de Python es un archivo fuente de Python normal, las secciones de rebajas se incluyen mediante una convención de comentarios estándar y los resultados no se guardan. El cuaderno en sí se trata como un artefacto de compilación y no está comprometido con el repositorio de git.
Antes de usar este repositorio, asegúrese de que jupytext esté instalado siguiendo las instrucciones de instalación aquí.
Para producir el archivo del cuaderno .ipynb
usando la fuente de rebajas, ejecute (bajo el capó, el objetivo de compilación notebook
simplemente ejecuta jupytext --to ipynb the_annotated_transformer.py
):
make notebook
Para producir la versión html del cuaderno, ejecute:
make html
make html
es solo un atajo para generar el cuaderno con jupytext --to ipynb the_annotated_transformer.py
seguido del uso del comando jupyter nbconvert para producir html usando jupyter nbconvert --to html the_annotated_transformer.ipynb
Para mantener limpio el formato del código, el repositorio git del transformador anotado tiene una acción git para verificar que el código cumpla con los estándares de codificación PEP8.
Para facilitar esto, hay dos objetivos de compilación Makefile
para ejecutar el formateo automático de código con black y flake8.
Asegúrese de instalar black and flake8.
Luego puedes ejecutar:
make black
(o alternativamente llamar manualmente a black black --line-length 79 the_annotated_transformer.py
) para formatear el código automáticamente usando black y:
make flake
(o llame manualmente a flake8 `flake8 --show-source the_annotated_transformer.py) para verificar si hay violaciones de PEP8.
Se recomienda ejecutar estos dos comandos y corregir cualquier error de flake8 que surja al enviar un PR; de lo contrario, el CI de acciones de github informará un error.