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()eshow()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 comload()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:
torchetorchvisionnumpymatplotlibopencv-pythontqdm
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cd36b9cfb2b9b152557ac3254f42f87442a08df65867b31188b68ebb4017845e
|
|
| MD5 |
37355aef88bac9ed72545a148d63b97f
|
|
| BLAKE2b-256 |
99f8e88449c1c8c29e0cc830a8fd3cc5621868611a2efba096db0cbb69745572
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
40407b1b0ff2ae5f6649256338e78b067cc23b7d8bf9dffd37a2b54460330aca
|
|
| MD5 |
29999328ba4da359e31522e02f970ca7
|
|
| BLAKE2b-256 |
2195039ed069a2857a57ee161d79a8c9932c20d92ac012135e42c9eb966145d0
|