# CipherGAN **Repository Path**: ssdreamc/CipherGAN ## Basic Information - **Project Name**: CipherGAN - **Description**: 搬运自 GitHub, 实现 CipherGAN - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-11-13 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CipherGAN 搬运自 [GitHub](https://github.com/for-ai/CipherGAN) 实现了 CipherGAN,用于获取论文[Unsupervised Cipher-Cracking Using Neural Networks](https://arxiv.org/abs/1801.04883) 的详细结果. **作者**: [Aidan N. Gomez](https://aidangomez.ca/), [Sīcōng Huang](https://www.linkedin.com/in/sicong-sheldon-huang/), [Ivan Zhang](https://ivanzhang.ca/), [Bryan M. Li](https://bryanli.io/), [Muhammad Osama](http://mcode.ca/), [Łukasz Kaiser](https://research.google.com/pubs/LukaszKaiser.html) ## 引用该文章 ``` @inproceedings{ n.2018unsupervised, title={Unsupervised Cipher Cracking Using Discrete {GAN}s}, author={Aidan N. Gomez and Sicong Huang and Ivan Zhang and Bryan M. Li and Muhammad Osama and Lukasz Kaiser}, booktitle={International Conference on Learning Representations}, year={2018}, url={https://openreview.net/forum?id=BkeqO7x0-}, } ``` ## 运行这份代码 命令 `pip install -r CipherGAN/requirements.txt` 来安装依赖项。 ### 生成数据 generating data 我们使用数据生成器来生成用于训练的 TFRecords。 需要注意的是 [`cipher_generator`](data/data_generators/cipher_generator.py), 它可以生成本论文中位移加密和维吉尼亚加密的数据。 We make use of data generators to generate the TFRecords that are used for training. Of particular note is [`cipher_generator`](data/data_generators/cipher_generator.py), which may be used to generate data for the shift and Vigenère ciphers that were tested in the paper. #### 示例调用 Sample Call 包含的生成器的设置作为标志被传递。例如,要在样本长度为 200 的布朗语料库上生成单词级维吉尼亚密码(key:CDE),调用: The settings for the included generators are passed as flags. For example, to generate a word-level Vigenère Cipher (key:`CDE`) on the Brown Corpus with a sample length of 200, call: ``` python CipherGAN/data/data_generators/cipher_generator.py \ --cipher=vigenere \ --vigenere_key=345 \ --percentage_training=0.9 \ --corpus=brown \ --vocab_size=200 \ --test_name=vigenere345-brown200-eval \ --train_name=vigenere345-brown200-train \ --output_dir=tmp/data \ --vocab_filename=vigenere345_brown200_vocab.txt ``` ### 训练 Training 所有的训练可以通过调用 [`train.py`](train.py) 来执行。训练要求所含生成器生成的 TFRecords。 All training can be performed by calling [`train.py`](train.py). Training requires the TFRecords generated by the included generators. #### 示例调用 Sample Call 请参考 [`train.py`](train.py) 接受的标志以获得完整的选项集。 Please refer to the flags accepted by [`train.py`](train.py) for a full set of options. ``` python -m CipherGAN.train \ --output_dir=runs/vig345 \ --test_name="vigenere345-brown200-eval*" \ --train_name="vigenere345-brown200-train*" \ --hparam_sets=vigenere_brown_vocab_200 ``` ## 贡献 Contributing We'd love to accept your contributions to this project. Please feel free to open an issue, or submit a pull request as necessary. If you have implementations of this repository in other ML frameworks, please reach out so we may highlight them here. ### 致谢 Acknowledgements Our thanks to [Michal Wiszniewski](https://github.com/wisznie) for his assistance in developing this codebase. In addition, this repository borrows and builds upon code from: * [CycleGAN](https://github.com/hardikbansal/CycleGAN) * [pix2pix-tensorflow](https://github.com/affinelayer/pix2pix-tensorflow) * [GAN-tensorflow](https://github.com/ckmarkoh/GAN-tensorflow)