【AI詩】主流プラットフォーム導入+独自構築

詩は常に文人のロマンスに属しますが、テクノロジーの発展とともに理系の学生は文系になり、リベラルアーツなどというものは存在しません(冗談です)。この記事を通じて、著者は主流の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.txtenvironment.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 APItensorflow2.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処理方法DropoutWrapperMultiRNNCell同様に、

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_cellstatic_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)

おすすめ

転載: blog.csdn.net/yefufeng/article/details/130457297