詩は常に文人のロマンスに属しますが、テクノロジーの発展とともに理系の学生は文系になり、リベラルアーツなどというものは存在しません(冗談です)。この記事を通じて、著者は主流のAI詩作成プラットフォームとそれを自分で構築する方法を参考のために紹介します。
テクノロジーの進歩は、オリジナルの創作物をより良く提供することであり、オリジナルの創作物を置き換えることではありません。結局のところ、AI の詩には魂がありません。
1. 主流の AI 詩執筆プラットフォームの導入
1. Poetry 300 AI詩執筆プラットフォーム
このプラットフォームは、四行詩、詩、単語、対句など、比較的完全な種類のさまざまな文学形式をサポートしています。
2.ジュゲ・人工知能詩作システム
このプラットフォームは、清華大学の自然言語処理および社会人文コンピューティング研究所によって開発された Shisanbai に似ています。
3. Huawei Yuefu・人工知能詩アプレット
Huawei Yuefu AI は GPT に基づく初の詩作システムであり、Google が提案した BERT と密接に関連しています。ファーウェイ岳府省の詩の質は比較的高いですが、有料です。
4. Microsoft Xiaobing AI 現代詩作成システム
このプラットフォームは現代の詩の創作に焦点を当てており、その声明は注目に値する:Xiaobingは自分の詩の著作権を放棄したと発表したため、彼女があなたの創作に参加したことさえ言及せずに、最終的な作品を自由に公開できます。 、創作作品は完全にあなたに所有されます。このプラットフォームは、写真やプロンプトの言葉を通じて詩を作成するように訓練することができ、カメラに残った素晴らしい瞬間を詩に変えることも非常に優れています。
2. 独立施工
ここで使用されるプロジェクト アドレスはhttps://github.com/lucasjinreal/tensorflow_poemsで、tensorflow に基づく AI 詩プロジェクトです。今回は、著者が独自の AI 詩プログラムを独自に構築する方法を紹介します。
1. Anaconda をインストールして設定する
公式 Web サイトにアクセスしてインストール パッケージをダウンロードしてインストールし、Anaconda を環境変数に設定します。
プロジェクトのクローンを作成した後、プロジェクトのルート ディレクトリに新しいファイルenvironment.yml
と空のファイルを作成しrequirements.txt
、environment.yml
次の内容を入力します。
name: poemai
channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- defaults
dependencies:
- pip==21.2.4
- python==3.10.6
コマンド ラインを開き、次のコマンドを使用して Python を実行するための仮想環境を作成します。
conda env create
E:\workspace\02_Python\002_AI作诗>conda info --envs
# conda environments:
#
base * D:\anaconda3
novelai D:\anaconda3\envs\novelai
poemai D:\anaconda3\envs\poemai
E:\workspace\02_Python\002_AI作诗>conda activate poemai
ただし、この時点ではtensorflow
バージョン 2 がすでにインストールされており、プロジェクトはtensorflow1.10 api
開発に基づいているため、変更する必要があることに注意してください。
import tensorflow as tf =>
import tensorflow.compat.v1 as tf
そうしないと、次のエラーが表示されます。
(poemai) E:\workspace\02_Python\002_AI作诗>python train.py
Traceback (most recent call last):
File "E:\workspace\02_Python\002_AI作诗\train.py", line 24, in <module>
tf.app.flags.DEFINE_integer('batch_size', 64, 'batch size.')
AttributeError: module 'tensorflow' has no attribute 'app'
2. モデルのトレーニングと運用
環境をセットアップしたら、python train.py
最初にモデルをトレーニングするコマンドを実行します。
モデルのトレーニングが完了すると、実行によってpython compose_poem.py
詩の作成が開始されます。
見た目はまあまあですが、上記の主流のプラットフォームとは比較できません、詩の意味は言うまでもなく、時には自分自身を解放します。
3. 考えられる問題
3.1 tf.placeholder() は即時実行と互換性がありません
具体的なエラー内容は以下の通りです。
(poemai) E:\workspace\02_Python\002_AI作诗>python train.py
Traceback (most recent call last):
File "E:\workspace\02_Python\002_AI作诗\train.py", line 87, in <module>
tf.app.run()
File "D:\anaconda3\envs\poemai\lib\site-packages\tensorflow\python\platform\app.py", line 36, in run
_run(main=main, argv=argv, flags_parser=_parse_flags_tolerate_undef)
File "D:\anaconda3\envs\poemai\lib\site-packages\absl\app.py", line 308, in run
_run_main(main, args)
File "D:\anaconda3\envs\poemai\lib\site-packages\absl\app.py", line 254, in _run_main
sys.exit(main(argv))
File "E:\workspace\02_Python\002_AI作诗\train.py", line 83, in main
run_training()
File "E:\workspace\02_Python\002_AI作诗\train.py", line 42, in run_training
input_data = tf.placeholder(tf.int32, [FLAGS.batch_size, None])
File "D:\anaconda3\envs\poemai\lib\site-packages\tensorflow\python\ops\array_ops.py", line 3340, in placeholder
raise RuntimeError("tf.placeholder() is not compatible with "
RuntimeError: tf.placeholder() is not compatible with eager execution.
理由分析:このTensorflow 2.0
関数はデフォルトで使用されます。具体的なコードは次のとおりです。このコードは、このコードと直接競合をEager Execution
引き起こします。tf.placeholder()
tf.compat.v1.enable_eager_execution()
解決策:tf.placeholder()
最初に機能を無効にするには、 の前に次のコードを入力します。
tf.compat.v1.disable_eager_execution()
3.2 モジュール「tensorflow」には属性「contrib」がありません
具体的なエラー内容は以下の通りです。
(poemai) E:\workspace\02_Python\002_AI作诗>python train.py
Traceback (most recent call last):
File "E:\workspace\02_Python\002_AI作诗\train.py", line 88, in <module>
tf.app.run()
File "D:\anaconda3\envs\poemai\lib\site-packages\tensorflow\python\platform\app.py", line 36, in run
_run(main=main, argv=argv, flags_parser=_parse_flags_tolerate_undef)
File "D:\anaconda3\envs\poemai\lib\site-packages\absl\app.py", line 308, in run
_run_main(main, args)
File "D:\anaconda3\envs\poemai\lib\site-packages\absl\app.py", line 254, in _run_main
sys.exit(main(argv))
File "E:\workspace\02_Python\002_AI作诗\train.py", line 84, in main
run_training()
File "E:\workspace\02_Python\002_AI作诗\train.py", line 46, in run_training
end_points = rnn_model(model='lstm', input_data=input_data, output_data=output_targets, vocab_size=len(
File "E:\workspace\02_Python\002_AI作诗\poems\model.py", line 44, in rnn_model
cell_fun = tf.contrib.rnn.BasicLSTMCell
AttributeError: module 'tensorflow' has no attribute 'contrib'
tensorflow2.x
理由分析:多くのインターフェイスが放棄されたためtensorflow1.x API
、tensorflow2.x
そのバージョンを使用して関数のコードを呼び出すときに、このような問題がtensorflow1.x
頻繁に発生します。module ‘tensorflow’ has no attribute ‘contrib’
作者のミスなど、tensorflow2.x
ライブラリが無いバージョンなのでcontrib
以下の方法で解決できます。
最初に使用する方法は、次のようにplaceholder
変更することです。import tensorflow as tf
import tensorflow.compat.v1 as tf
tf.compat.v1.disable_eager_execution()
BasicLSTMCell
処理方法DropoutWrapper
もMultiRNNCell
同様に、
cell = tf.contrib.rnn.BasicLSTMCell(num_units=units, forget_bias=0.9)
修改为:
cell = tf.nn.rnn_cell.BasicLSTMCell(num_units=units,forget_bias=0.9)
contrib.rnn
に変更しますnn.rnn_cell
。static_rnn
同様のものを使用している場合は、そのままcontrib.rnn
に変更してくださいnn
。
outputs, _ = tf.contrib.rnn.static_rnn(stacked_lstm_cells, inputs, dtype=tf.float32)
修改为:
outputs, _ = tf.nn.static_rnn(stacked_lstm_cells, inputs, dtype=tf.float32)