Kode untuk pelatihan/menghasilkan GAN, yaitu untuk desain font.
Font yang dihasilkan, mereka memiliki berbagai gaya dan dapat dibaca sebagai karakter. 
Jalan acak dalam ruang input gaya. Anda dapat menonton font yang berubah secara bertahap.


























Kode berjalan yang diperiksa auther hanya di lingkungan berikut:
Jika Anda ingin menjalankan dengan lingkungan terbaru, revisi beberapa file seperlunya.
Pertama mengkloning repositori ini. Tambahkan --recursive Karena Repositori Ini Berisi Submodule (Font2IMG)
git clone --recursive https://github.com/uchidalab/fontdesign_gan
cd fontdesign_gan
Jika Anda menggunakan GPU dan Docker, mudah untuk mengatur lingkungan Anda. Perpustakaan persyaratan ditulis di Dockerfile.
Instal GPU Driver/NVIDIA Docker dan jalankan perintah berikut:
docker build -t fontdesign_gan .
docker run --runtime=nvidia -it --rm -p 6006:6006 --volume `pwd`:/workdir -w /workdir/ fontdesign_gan
Dengan GPU: Instal GPU Driver/CUDA/CUDNN dan jalankan perintah berikut:
pip install -r requirements_gpu.txt
Dengan CPU: Jalankan perintah berikut:
pip install -r requirements_cpu.txt
Konversi file font (.ttf) menjadi file gambar (.png), dan bungkus ke dalam file hdf5 (.h5)
Buat direktori (mis. ./ttfs ) dan salin file font. Atur jalur tujuan (mis. ./src/myfonts.h5 ) dan jalankan.
python main.py --ttf2png --png2h5 --font_ttfs ./ttfs --font_h5 ./src/myfonts.h5
--ttf2png adalah opsi untuk mengonversi, file gambar disimpan di ./src/pngs/{YYYY-MM-DD_HHmmss} . Jika Anda menggunakan opsi --font_pngs , Anda dapat mengatur jalur sendiri.
--png2h5 adalah opsi untuk pengemasan, file dikemas disimpan di jalur yang Anda atur dengan opsi --font_h5 .
Atur jalur file yang dikemas dan jalankan.
python main.py --train --font_h5 ./src/myfonts.h5
Hasilnya disimpan di ./result/{YYYY-MM-DD_HHmmss} . Anda dapat mengatur tujuan dengan --gan_dir .
Di Direktori log , menyimpan file yang sama: Log Flags, Dumps TensorFlow Terbaru/Disetel (.ckpt*), log Tensorboard.
Dalam direktori sample , font yang menghasilkan sementara disimpan.
Saat berlatih, Tensorboard juga berjalan. Akses URL yang akan ditampilkan di baris perintah.
Tetapkan jalur direktori output GAN yang terlatih dan file JSON.
File JSON harus menjadi ID gaya/karakter tertulis. ID gaya sesuai dengan matriks acak. ID karakter sesuai dengan karakter.
ID dimuat secara berurutan, dan Anda dapat menggunakan beberapa operan. Misalnya, jika file JSON mengikuti:
{
"style_ids": [
"0", "5", "21", "37", "17..39:4"
],
"char_ids": [
"0-3", "6*4"
],
"col_n": 4
}
ID input akan seperti ini:
style_ids = [0, 5, 21, 37, (between 17 and 39 with 4 steps)]
char_ids = [0, 1, 2, 3, 6, 6, 6, 6]
dan, # kolom hasil adalah 4. Juga periksa file sampel ( ./jsons/sample*.json ).
Setelah menyiapkan file JSON, jalankan seperti ini:
python main.py --generate --gan_dir ./result/{trained} --ids ./jsons/sample01.json
Font yang dihasilkan disimpan di ./result/{trained}/generated/{YYYY-MM-DD_HHmmss}.png . Anda dapat mengatur nama file output dengan --gen_name .
Gambar yang dihasilkan seperti ini: 
Jika Anda ingin font berjalan acak, gunakan --generate_walk . File JSON tidak perlu.
python main.py --generate_walk --gan_dir ./result/{YYYY-MM-DD_HHmmss} --char_img_n 256
256 Font Styles akan dihasilkan, dan mereka diubah secara bertahap.
Ada banyak pilihan. Periksa tabel berikut.
| Untuk | Pilihan | Keterangan | Bawaan |
|---|---|---|---|
| Persiapkan, latih | --img_width | Lebar gambar. | 64 |
| Persiapkan, latih | --img_height | tinggi gambar. | 64 |
| Persiapkan, latih | --img_dim | dimensi gambar. | 3 |
| Persiapkan, latih | --chars_type | Anda dapat memilih tipe karakter, "topi", "hiragana" atau "topi, hiragana" | "topi" |
| Kereta, hasilkan | --gpu_ids | ID GPU yang Anda gunakan. Jenis ini adalah string (ex. "0, 1") | (diatur secara otomatis) |
| Kereta, hasilkan | --batch_size | Ukuran Batch untuk Gan | 256 |
| Kereta | --arch | Arsitektur Model GAN. Pilih "Dcgan" atau "Resnet" | "DCGAN" |
| Kereta | --style_ids_n | # ID Gaya | 256 |
| Kereta | --style_z_size | ukuran style_z | 100 |
| Kereta | --gan_epoch_n | # iterasi zaman | 10000 |
| Kereta | --critic_n | # iterasi kritikus | 5 |
| Kereta | --sample_imgs_interval | interval menyimpan gambar sampel | 10 |
| Kereta | --sample_col_n | # kolom gambar contoh | 26 |
| Kereta | --keep_ckpt_interval | interval menjaga tempat pembuangan tensorflow | 250 |
| Kereta | --run_tensorboard | Jalankan Tensorboard atau tidak | BENAR |
| Kereta | --tensorboard_port | Port untuk halaman Tensorboard | 6006 |