こんにちは、北原です。
今回、オーム社から出版されている「Magentaで開発 AI作曲」で環境構築をする際、4日も掛かってしまいました。
コマンド画面はWARNINGやERRORの嵐(笑)
なので、試行錯誤や環境の作り直しを数回繰り返し、成功した時のバージョンなどを残しておきます。
MagentaのAI作曲本
今回、この本に出会ったことがきっかけで、AI作曲をやってみようと思いました。
私の環境構築前のパソコン環境は下記の通りです。
- Windows 11 Home
- 64bitオペレーションシステム
- Intel Core i7-8700 CPU
- NVIDIA GeForce
- 使用コマンドソフトはPowerShell
他にも、Web開発やアプリケーション開発関係でPythonの最新版、pipのインストールは完了済でした。
私が成功した時の設定
最終的に私の環境では、下記の条件を満たすことで構築できました。
成功したバージョン
- PowerShell 7
- pip 24.0
- Python 3.7.9
- tensorflow 1.15.0
- magenta 1.1.7
- pydub 最新版
- protobuf 3.20.3
- flatbuffers 2.0
実際のメロディ生成コマンドは本を読んでください。
私の失敗リスト
私はよく、環境構築時にエラーが多発する人です
( ノД`)シクシク…
会社に入社した時も、出向先でパソコンを支給された時も、いつも手順書通りに進めても途中でエラーが発生してしまって、その通りに進まないのです。
今回も例に漏れず、毎日毎日吐き出されるエラーに苦しみました。
PoworShellのバージョンが古かった
私が最後に対応したエラーはPowerShellのバージョンアップ指示でした。
「え? そこ!?」
って思ったのを覚えています。
私が使っていたPowerShellはWindowsに最初から搭載されていたv1.0の「Windows PowerShell」でした。それをPowerShell 7に更新しました。
「新機能と改善のために最新のPowerShellをインストールしてください」
と、PowerShellを起動するたびに言われていたのですが、URLにアクセスしていたはずが、なぜかアップデートを先送りにしていました。
Pythonのバージョンが新しすぎた
MagentaにはTensorflowもインストールが必要で、このバージョンの相性には癖があるという話はネット上でたくさん転がっていました。
また、Pythonのバージョンも下げた方がいいという話も出てました。
私はPython3.13を使っていたので、Magenta最新版2.1.4に対応しているPython3.8.10から始めました。
しかし、最終的な組み合わせで使用できたのはPython3.7.9でした。
コマンドのファイルパスが間違っていた
これ、本当にしょうもないんですが、「C:\Users\user_name\~」の「Users」を「User」って書いてしまっていました(苦笑)
思い込みがあって、ユーザー名の綴りからは何度も確認していたのですが、まさかUsersの最後のsを落としてしまっていたなんて思わなかったです。
このミスを発見してくれたのはChatGPT(笑)
ほんとありがとう!
まとめ
決定打になったエラーは今回の3点ですが、この3点に辿り着くまで、本当に様々な種類のエラー祭りでした。
- pipのバージョンが古いからアップデートしてください。
- pipはインストールしたすべてのパッケージを考慮していません。
- この動作は次の依存関係のコンフリクトの原因になります。
- tensorflow-intelの対象バージョンがflatbuffers, keras, numpy, protobuf, tensorboard, tensorflow-estimatorのバージョン条件を満たしていません。
- tensorflow-intelの条件と、tensorflowの条件を同時に満たすことはできません。
この解決に実に4日も費やしました。
みなさんは数時間でスパッとクリアできるように願っています。
Maiden-TheaterはWeb制作だけじゃない猫の手フリーランス
ホームページの企画、デザイン、開発
・単発依頼
・運用サポート(月額業務委託)3,300円~
詳細をお伺いし、お見積もりを作成します。
作品販売
Pixiv BOOTHでも販売しています。
・絵画作品
・ノベル作品
・その他グッズ類
====== Maiden-Theater =======
お問い合わせ、お仕事のご依頼
作品購入のご連絡は
公式LINEからお気軽にどうぞ
======= Maiden-Theater =======