Skip to main content

Uma biblioteca Python intuitiva para treinar e usar GANs para geração de imagens.

Project description

Ganim 🎨

Uma biblioteca Python intuitiva para treinar e usar Redes Adversariais Generativas (GANs) para geração de imagens.

A Ganim foi projetada para simplificar o processo de criação com GANs. Ela abstrai a complexidade do código de baixo nível, permitindo que você inicie um treinamento completo ou gere arte digital com uma API simples e direta.

✨ Principais Recursos

  • API Simplificada: Comandos intuitivos como fit(), sample() e show() para um fluxo de trabalho rápido e eficiente.
  • Altamente Configurável: Use a função setup() para ajustar facilmente os principais parâmetros do seu modelo, como épocas de treino e taxa de aprendizado.
  • Visualização Integrada: Monitore o progresso do seu treino com prévias automáticas e exiba suas imagens finais em janelas de alta resolução.
  • Análise de Performance: Plote gráficos de perda do Gerador e do Discriminador com uma única linha de código usando plot().
  • Gerenciamento de Modelos: Salve seus modelos com save() e carregue-os a qualquer momento com load() para continuar de onde parou.

⚙️ Instalação

Instruções de instalação para a biblioteca serão fornecidas aqui quando disponível.

Pré-requisitos: A Ganim depende das seguintes bibliotecas Python. Certifique-se de que elas estejam instaladas no seu ambiente:

  • torch e torchvision
  • numpy
  • matplotlib
  • opencv-python
  • tqdm

Você pode instalá-las usando pip:

pip install torch torchvision numpy matplotlib opencv-python tqdm

🚀 Guia Rápido (Quick Start)

Para começar, organize suas imagens de treinamento na seguinte estrutura de pastas:

seu_projeto/
├── imgs/
│   └── dataset/  <-- Uma subpasta (qualquer nome)       ├── imagem1.jpg
│       └── imagem2.png
│
└── seu_script.py

Com a Ganim, treinar um modelo e gerar imagens é muito simples:

import ganim

# --- 1. TREINAMENTO ---

# (Opcional) Configure os parâmetros do seu projeto
ganim.setup(
    epochs=500,               # Número de épocas de treinamento
    sampleInterval=50,        # Frequência para gerar prévias
    previewImageCount=25,     # Quantidade de imagens na prévia (grid 5x5)
    previewWindowSize=768     # Tamanho da janela de prévia em pixels
)

# Inicia o treinamento
"O 'fit' retorna o modelo Gerador treinado e um histórico de perdas"
generator, history = ganim.fit(data='./imgs')

 "Se o treino ocorreu bem, plote a performance e salve o modelo"
if generator and history:
    ganim.plot(history)
    ganim.save(generator, path='./meu_modelo_ganim.pth')


# --- 2. GERAÇÃO ---

" Carregue seu modelo treinado"
meu_gerador = ganim.load(path='./meu_modelo_ganim.pth')

"Gere 16 novas imagens"
novas_imagens = ganim.sample(model=meu_gerador, count=16)

 "Exiba as imagens em uma janela grande e personalizada"
ganim.show(
    novas_imagens,
    window_title="Arte Gerada por Ganim!",
    window_size=1024
)

📚 Referência da API

Aqui estão as principais funções disponíveis no ganim:

ganim.setup(**kwargs)

Configura os hiperparâmetros globais. Deve ser chamada antes de fit().

ganim.fit(data)

Inicia o loop de treinamento. Retorna o modelo Gerador treinado e um dicionário de historico.

ganim.sample(model, count=1)

Gera novas imagens a partir de um modelo treinado.

ganim.show(images_tensor, window_title="Ganim", window_size=None)

Exibe um tensor de imagens em uma janela.

ganim.plot(history)

Plota os gráficos de perda do treinamento.

ganim.save(model, path="ganim_model.pth")

Salva os pesos de um modelo em um arquivo.

ganim.load(path)

Carrega os pesos de um modelo salvo. Retorna um novo objeto Gerador.

Parâmetro Padrão Descrição
imageSize 64 Resolução da imagem (pixels). A arquitetura atual é otimizada para 64x64.
channels 3 Canais de cor (3 para RGB, 1 para escala de cinza).
latentDim 100 Dimensão do vetor de ruído (a "semente" da imagem).
epochs 5000 Número total de épocas de treinamento.
batchSize 64 Quantidade de imagens processadas por lote.
learningRate 0.0002 Taxa de aprendizado dos modelos.
sampleInterval 100 Frequência (em épocas) para gerar prévias do progresso.
previewImageCount 16 Quantidade de imagens exibidas por prévia.
previewWindowSize 512 Tamanho (em pixels) da janela de prévia.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ganim-0.1.0.tar.gz (7.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ganim-0.1.0-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

File details

Details for the file ganim-0.1.0.tar.gz.

File metadata

  • Download URL: ganim-0.1.0.tar.gz
  • Upload date:
  • Size: 7.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for ganim-0.1.0.tar.gz
Algorithm Hash digest
SHA256 cd36b9cfb2b9b152557ac3254f42f87442a08df65867b31188b68ebb4017845e
MD5 37355aef88bac9ed72545a148d63b97f
BLAKE2b-256 99f8e88449c1c8c29e0cc830a8fd3cc5621868611a2efba096db0cbb69745572

See more details on using hashes here.

File details

Details for the file ganim-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: ganim-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 8.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for ganim-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 40407b1b0ff2ae5f6649256338e78b067cc23b7d8bf9dffd37a2b54460330aca
MD5 29999328ba4da359e31522e02f970ca7
BLAKE2b-256 2195039ed069a2857a57ee161d79a8c9932c20d92ac012135e42c9eb966145d0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page