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

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

新規登録して質問してみよう
ただいま回答率
85.48%
MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Python

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

Q&A

解決済

1回答

3536閲覧

FATAL Flags parsing error: Unknown command line flag 'params' がわかりません・

退会済みユーザー

退会済みユーザー

総合スコア0

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Python

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

0グッド

0クリップ

投稿2021/08/18 07:11

編集2021/08/18 08:58

プログラムを実行したら、

FATAL Flags parsing error: Unknown command line flag 'params'

Pass --helpshort or --helpfull to see help on flags.

となってしまいました。
何が原因なのかわかりません。
どなたか教えていただけないでしょうか?

Python

1# -*- coding: utf-8 -*- 2 3#Copyright (c) 2017, Gabriel Eilertsen. 4#All rights reserved. 5 6import os, sys 7import tensorflow as tf 8import tensorlayer as tl 9import numpy as np 10import network, img_io 11 12from absl import app 13from absl import flags 14 15eps = 1e-5 16 17def print_(str, color='', bold=False): 18 if color == 'w': 19 sys.stdout.write('\033[93m') 20 elif color == "e": 21 sys.stdout.write('\033[91m') 22 elif color == "m": 23 sys.stdout.write('\033[95m') 24 25 if bold: 26 sys.stdout.write('\033[1m') 27 28 sys.stdout.write(str) 29 sys.stdout.write('\033[0m') 30 sys.stdout.flush() 31 32def main(): 33 #設定、TensorFlow引数を使用 34 FLAGS = flags.FLAGS 35 flags.DEFINE_integer("width", "1024", "Reconstruction image width") 36 flags.DEFINE_integer("height", "768", "Reconstruction image height") 37 flags.DEFINE_string("im_dir", "data", "Path to image directory or an individual image") 38 flags.DEFINE_string("out_dir", "out", "Path to output directory") 39 flags.DEFINE_string("params", "hdrcnn_params.npz", "Path to trained CNN weights") 40 41 flags.DEFINE_float("scaling", "1.0", "Pre-scaling, which is followed by clipping, in order to remove compression artifacts close to highlights") 42 flags.DEFINE_float("gamma", "1.0", "Gamma/exponential curve applied before, and inverted after, prediction. This can be used to control the boost of reconstructed pixels.") 43 44 #32の倍数に丸めて、オートエンコーダのプーリングとアップサンプリングを行う 45 #入力画像と同じサイズになります 46 sx = int(np.maximum(32, np.round(FLAGS.width/32.0)*32)) 47 sy = int(np.maximum(32, np.round(FLAGS.height/32.0)*32)) 48 if sx != FLAGS.width or sy != FLAGS.height: 49 print_("Warning: ", 'w', True) 50 print_("prediction size has been changed from %dx%d pixels to %dx%d\n"%(FLAGS.width, FLAGS.height, sx, sy), 'w') 51 print_("ピクセル、オートエンコーダのプーリングとアップサンプリングに準拠します。\n\n", 'w') 52 53 #情報 54 print_("\n\n\t-------------------------------------------------------------------\n", 'm') 55 print_("\t ディープCNNを使用した単一露光からのHDR画像再構成\n\n", 'm') 56 print_("\t 予測設定\n", 'm') 57 print_("\t -------------------\n", 'm') 58 print_("\t 入力画像のディレクトリ/ファイル:%s\n" % FLAGS.im_dir, 'm') 59 print_("\t 出力ディレクトリ:%s\n" % FLAGS.out_dir, 'm') 60 print_("\t CNN重み:%s\n" % FLAGS.params, 'm') 61 print_("\t 予測解像度: %dx%d ピクセル\n" % (sx, sy), 'm') 62 if FLAGS.scaling > 1.0: 63 print_("\t Pre-scaling: %0.4f\n" % FLAGS.scaling, 'm') 64 if FLAGS.gamma > 1.0 + eps or FLAGS.gamma < 1.0 - eps: 65 print_("\t Gamma: %0.4f\n" % FLAGS.gamma, 'm') 66 print_("\t-------------------------------------------------------------------\n\n\n", 'm') 67 68 # シングルフレーム 69 frames = [FLAGS.im_dir] 70 71 # ディレクトリが指定されている場合は、パス内のすべてのファイルの名前を取得します 72 if os.path.isdir(FLAGS.im_dir): 73 frames = [os.path.join(FLAGS.im_dir, name) 74 for name in sorted(os.listdir(FLAGS.im_dir)) 75 if os.path.isfile(os.path.join(FLAGS.im_dir, name))] 76 77 #画像入力用のプレースホルダー 78 x = tf.placeholder(tf.float32, shape=[1, sy, sx, 3]) 79 80 #HDR再構成オートエンコーダモデル 81 print_("Network setup:\n") 82 net = network.model(x) 83 84 #CNN予測(これには入力画像xとのブレンドも含まれます) 85 y = network.get_final(net, x) 86 87 #推論を実行するためのTensorFlowセッション 88 sess = tf.InteractiveSession() 89 90 #トレーニング済みのCNNウェイトをロードする 91 print_("\nLoading trained parameters from '%s'..."%FLAGS.params) 92 load_params = tl.files.load_npz(name=FLAGS.params) 93 tl.files.assign_params(sess, load_params, net) 94 print_("\tdone\n") 95 96 if not os.path.exists(FLAGS.out_dir): 97 os.makedirs(FLAGS.out_dir) 98 99 print_("\nStarting prediction...\n\n") 100 k = 0 101 for i in range(len(frames)): 102 print("Frame %d: '%s'"%(i,frames[i])) 103 104 try: 105 #フレームの読み込み 106 print_("\tReading...") 107 x_buffer = img_io.readLDR(frames[i], (sy,sx), True, FLAGS.scaling) 108 print_("\tdone") 109 110 print_("\t(Saturation: %0.2f%%)\n" % (100.0*(x_buffer>=1).sum()/x_buffer.size), 'm') 111 112 # 実行予測。 113 # ガンマ値は、再構成されたハイライトの強度を高める/減らすことを可能にするために使用されます。 114 # y = f(x)が再構成されたものであれば、ガンマ値 gは、y = f(x^(1/g))^gに従ってこれを変更します。 115 print_("\tInference...") 116 feed_dict = {x: np.power(np.maximum(x_buffer, 0.0), 1.0/FLAGS.gamma)} 117 y_predict = sess.run([y], feed_dict=feed_dict) 118 y_predict = np.power(np.maximum(y_predict, 0.0), FLAGS.gamma) 119 print_("\tdone\n") 120 121 # ガンマ補正出力 122 y_gamma = np.power(np.maximum(y_predict, 0.0), 0.5) 123 124 # ディスクへの書き込み 125 print_("\tWriting...") 126 k += 1; 127 img_io.writeLDR(x_buffer, '%s/%06d_in.png' % (FLAGS.out_dir, k), -3) 128 img_io.writeLDR(y_gamma, '%s/%06d_out.png' % (FLAGS.out_dir, k), -3) 129 img_io.writeEXR(y_predict, '%s/%06d_out.exr' % (FLAGS.out_dir, k)) 130 print_("\tdone\n") 131 132 except img_io.IOException as e: 133 print_("\n\t\tWarning! ", 'w', True) 134 print_("%s\n"%e, 'w') 135 except Exception as e: 136 print_("\n\t\tError: ", 'e', True) 137 print_("%s\n"%e, 'e') 138 139 print_("Done!\n") 140 141 sess.close() 142 143if __name__ == "__main__": 144 app.run(main)

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

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

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

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

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

guest

回答1

0

ベストアンサー

abslの使い方がおかしいです。
Example Codeを参考に修正ください。

Python

1import os, sys 2from absl import app 3from absl import flags 4 5FLAGS = flags.FLAGS 6flags.DEFINE_string("params", "hdrcnn_params.npz", "Path to trained CNN weights") 7 8def main(argv): 9 del argv 10 print(FLAGS.params) 11 12if __name__ == "__main__": 13 app.run(main)

実行結果例

>python hoge.py hdrcnn_params.npz >python hoge.py -params abc abc

投稿2021/08/18 07:55

can110

総合スコア38266

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問