Camadas diferenciáveis ​​para gráficos.

import numpy as np
import tensorflow as tf
import trimesh

import tensorflow_graphics.geometry.transformation as tfg_transformation
from tensorflow_graphics.notebooks import threejs_visualization

# Download the mesh.
!wget https://storage.googleapis.com/tensorflow-graphics/notebooks/index/cow.obj
# Load the mesh.
mesh = trimesh.load("cow.obj")
mesh = {"vertices": mesh.vertices, "faces": mesh.faces}
# Visualize the original mesh.
threejs_visualization.triangular_mesh_renderer(mesh, width=400, height=400)
# Set the axis and angle parameters.
axis = np.array((0., 1., 0.))  # y axis.
angle = np.array((np.pi / 4.,))  # 45 degree angle.
# Rotate the mesh.
mesh["vertices"] = tfg_transformation.axis_angle.rotate(mesh["vertices"], axis,
                                                        angle).numpy()
# Visualize the rotated mesh.
threejs_visualization.triangular_mesh_renderer(mesh, width=400, height=400)
O TensorFlow Graphics visa tornar funções gráficas úteis amplamente acessíveis à comunidade, fornecendo um conjunto de camadas gráficas diferenciáveis ​​(por exemplo, câmeras, modelos de refletância, convoluções de malha) e funcionalidades de visualizador 3D (por exemplo, 3D TensorBoard) que podem ser usadas em seus modelos de aprendizado de máquina de escolha.

Nos últimos anos, houve um aumento de novas camadas gráficas diferenciáveis ​​que podem ser inseridas em arquiteturas de redes neurais. De transformadores espaciais a renderizadores gráficos diferenciáveis, essas novas camadas aproveitam o conhecimento adquirido ao longo de anos de pesquisa em visão computacional e gráficos para construir arquiteturas de rede inovadoras e mais eficientes. A modelagem explícita de priorização e restrições geométricas em modelos de aprendizado de máquina abre as portas para arquiteturas que podem ser treinadas de forma robusta, eficiente e, mais importante, de forma autossupervisionada.

Para começar, veja uma visão geral mais detalhada , o guia de instalação e a API .