質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
CNN (Convolutional Neural Network)

CNN (Convolutional Neural Network)は、全結合層のみではなく畳み込み層とプーリング層で構成されるニューラルネットワークです。画像認識において優れた性能を持ち、畳み込みニューラルネットワークとも呼ばれています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

976閲覧

Python コマンドライン引数が正しく与えられない

odenhanpen

総合スコア5

CNN (Convolutional Neural Network)

CNN (Convolutional Neural Network)は、全結合層のみではなく畳み込み層とプーリング層で構成されるニューラルネットワークです。画像認識において優れた性能を持ち、畳み込みニューラルネットワークとも呼ばれています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/12/16 04:57

編集2021/12/16 05:01

前提・実現したいこと

PythonでCNNモデルを用い音声感情分類を行うシステムを作っています。
用いる音声データベースに対話1~5までが収録されており、対話1をテストデータとする時それ以外の対話を訓練データとしています。データベースに検証データは用意されていないため、交差検証を行います。
コマンドライン引数を2つ与えて、1つ目がテストデータ、2つ目が初期値としてGoogle Colabratoryのコマンドから入力できるようにしています。

まずプログラムを実行すると、No such file or directoryエラーが出てしまいどこが原因で発生したのか分からなかったため、一度プログラムをコマンドに直書きで記述しました。
すると以下のエラーメッセージが発生しました。2つ目のコマンドライン引数が正しく与えられていない?(10進数の数値の文字列ではない)という意味だと思うのですが、改善方法が分からず質問させていただきました。
よろしくお願いいたします。

発生している問題・エラーメッセージ

---> 51 tf.random.set_seed(int(seed)) 52 np.random.seed(int(seed)) 53 random.seed(int(seed)) ValueError: invalid literal for int() with base 10:''

該当のソースコード

Python

1 2args = sys.argv 3argc = len(args) 4 5if(argc!=3): 6 print('Error: python cnn_model.py test_fold initial_value\n') 7 quit() 8 9fold = sys.argv[1] 10seed = sys.argv[2] 11 12print(seed) 13 14tf.random.set_seed(int(seed)) 15np.random.seed(int(seed)) 16random.seed(int(seed)) 17os.environ['TF_DETERMINISTIC_OPS'] = '1' 18os.environ['PYTHONHASHSEED'] = str(seed) 19

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

melian

2021/12/16 05:17

エラーメッセージから推測すると、 python cnn_model.py test_fold "" という様に実行していると思われます(第二引数に空文字列を渡している)。
odenhanpen

2021/12/16 05:21

ご回答ありがとうございます。 python cnn_model.py 1 0 と実行したところNo such file or directoryというエラーメッセージが出ました。 その後上記に記載のエラーメッセージは、コードをGoogle Colabratoryのコマンドに直接記述し実行した際に出力されました。
melian

2021/12/16 05:25

python cnn_model.py 1 0 を実行しますと fold のファイル名が "1" ということになりますので、"1" というファイルが存在しなければエラーになってしまいます(No such file or directory)。
odenhanpen

2021/12/16 05:28

説明不足で申し訳ございません。 pathを以下のように設定しているため、foldに1~5の数値を入れると正しくファイルパスが入るはずです。 f_test_path = os.getcwd() + '/feature/Session' + fold + '/test/' f_train_path = os.getcwd() + '/feature/Session' + fold + '/train/' l_test_path = os.getcwd() + '/label/impro/Session' + fold + '.csv'
odenhanpen

2021/12/16 05:29 編集

Session4のtestフォルダのみ元々データが存在しないのですが、それが原因という可能性はあるでしょうか?
melian

2021/12/16 05:34

No such file or directory というエラーが発生した際に、具体的なファイル名はどの様になっていたのでしょうか? それを確認すれば問題を解決する事ができるかと思います。
odenhanpen

2021/12/16 05:39

No such file or directoryのエラーが出る際、プログラムの中でファイル名をprintしても表示されないと思うのですが、どのようにすれば確認できるのでしょうか…?何度も申し訳ございません。
melian

2021/12/16 05:43

例えば l_test_path を読むのであれば、 l_test_path = os.getcwd() + '/label/impro/Session' + fold + '.csv' の直後に print(l_test_path) を入れておいて、表示されるファイルが実際に存在するのかどうかを確認します。
odenhanpen

2021/12/16 05:46

そのように記述した場合、ファイル名は表示されません…
odenhanpen

2021/12/16 05:47

pathは正しく記述できているのですが…
melian

2021/12/16 05:51

ファイル名が表示されないとすれば、l_test_path = os.getcwd() ... を実行する前に何かファイルの読み書きの処理をしているのでしょうか?
odenhanpen

2021/12/16 05:55

していません。pathの設定の前にはライブラリなど諸々のimportや定義、コマンドライン引数の設定など記述しています。
melian

2021/12/16 05:56

ああ、やっと判りました。cnn_model.py が見つからない、というエラーが起きているのですね。
odenhanpen

2021/12/16 06:06

そうです。うまく説明できず申し訳ございません。
melian

2021/12/16 06:09

いえ、こちらこそ勘違いをしてしまい済みません。それでしたら、cnn_model.py を絶対パスで書くか、cnn_model.py のあるディレクトリに移動してから python cnn_model.py ... を実行してみてはどうでしょうか。
odenhanpen

2021/12/16 06:18

現在そのように記述しているのですが、エラーが出てしまっています…
odenhanpen

2021/12/16 06:36

すみません、ディレクトリに移動できていませんでした… こちらのエラー解消されました。ありがとうございます!
melian

2021/12/16 06:37

解決できて良かったです。
guest

回答1

0

自己解決

現在のディレクトリを指定できていませんでした。
指定すると解決しました。

投稿2021/12/16 07:24

odenhanpen

総合スコア5

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問