🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Python

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

Q&A

解決済

1回答

1609閲覧

aインデントエラーの修正

max12345

総合スコア20

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Python

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

0グッド

0クリップ

投稿2021/01/10 08:17

編集2021/01/10 09:37

インデントエラーでつまづいています。どういうふうに書き直せば良いのでしょうか。
イメージ説明

python

1import nnabla as nn 2import nnabla.functions as F 3import nnabla.parametric_functions as PF 4from nnabla.utils.data_iterator import data_iterator_csv_dataset 5import os 6import cv2 7from datetime import datetime 8import pandas as pd 9import matplotlib.pyplot as plt 10import numpy as np 11from PIL import Image 12 13def network(x, y, test=False): 14 # Input:x -> 3,250,250 15 # MulScalar 16 h = F.mul_scalar(x, 0.003921568627450981) 17 # DepthwiseDeconvolution -> 3,256,256 18 h = PF.depthwise_deconvolution(h, (7,7), name='DepthwiseDeconvolution') 19 # ReLU 20 h = F.relu(h, True) 21 # MaxPooling -> 3,128,128 22 h = F.max_pooling(h, (2,2), (2,2)) 23 # Convolution -> 16,128,128 24 h = PF.convolution(h, 16, (3,3), (1,1), name='Convolution') 25 # MaxPooling_2 -> 16,64,64 26 h = F.max_pooling(h, (2,2), (2,2)) 27 # Tanh 28 h = F.tanh(h) 29 # Affine -> 100 30 h = PF.affine(h, (100,), name='Affine') 31 # ReLU_2 32 h = F.relu(h, True) 33 # Affine_2 -> 26 34 h = PF.affine(h, (26,), name='Affine_2') 35 # Softmax 36 h = F.softmax(h) 37 # CategoricalCrossEntropy -> 1 38 #h = F.categorical_cross_entropy(h, y) 39 return h 40 41 cap = cv2.VideoCapture(0) # 任意のカメラ番号に変更する 42 43 new_dir_path = "./realtime/" 44 os.makedirs(new_dir_path, exist_ok=True) 45 46 #カメラスタート 47while True: 48 49 ret, frame = cap.read() 50 cv2.imshow("camera", frame) 51 52 k = cv2.waitKey(1)&0xff # キー入力を待つ 53 if k == ord('p'): 54 55 # 「p」キーで画像を保存 56 57 date = datetime.now().strftime("%Y%m%d_%H%M%S") 58 path = new_dir_path + date +".png" 59 cv2.imwrite(path, frame) 60 image_gs = cv2.imread(path) 61 62 path = new_dir_path + date +".png" 63 dst = cv2.resize(image_gs,(250,250)) 64 cv2.imwrite(path, dst) 65 66 f = pd.DataFrame(columns=["x:data","y:data"]) 67 xdata = path 68 ydata = 0 69 new_name = pd.Series([xdata,ydata],index=f.columns) 70 f = f.append(new_name, ignore_index=True) 71 f.to_csv('C:\Users\username\Desktop\output\valu.csv',index=False,header = True ) 72 73 test_data = data_iterator_csv_dataset("C:\Users\username\Desktop\output\valu.csv",1,shuffle=False,normalize=True) 74 75 76 #ネットワークの構築 77 nn.clear_parameters() 78 x = nn.Variable((1,3,250,250)) 79 t = nn.Variable((1,1)) 80 y = network(x, t) 81 82 nn.load_parameters('\Users\username\Desktop\output\yubidata.files/20210108_180946\results.nnp') 83 print("load model") 84 85 86 87 path = new_dir_path + "test" +".png" 88 cv2.imwrite(path, frame) 89 image_gs = cv2.imread(path) 90 91 path = new_dir_path + date +".png" 92 dst = cv2.resize(image_gs,(250,250)) 93 cv2.imwrite(path, dst) 94 95 f = pd.DataFrame(columns=["x:data","y:data"]) 96 xdata = path 97 ydata = 0 98 new_name = pd.Series([xdata,ydata],index=f.columns) 99 f = f.append(new_name, ignore_index=True) 100 f.to_csv('C:\Users\username\Desktop\output\valu.csv',index=False,header = True ) 101 102 test_data = data_iterator_csv_dataset("C:\Users\username\Desktop\output\valu.csv",1,shuffle=False,normalize=True) 103 104 105 #ネットワークの構築 106 nn.clear_parameters() 107 x = nn.Variable((1,3,250,250)) 108 t = nn.Variable((1,1)) 109 y = network(x, t) 110 111 nn.load_parameters('C:\Users\username\Desktop\output\yubidata.files/20210108_180946\results.nnp') 112 print("load model") 113 114 for i in range(test_data.size): 115 116 x.d, t.d = test_data.next() 117 y.forward() 118 print(y.d[0]) 119 120 121 elif 122 k == ord('q'): 123 # 「q」キーが押されたら終了する 124 125 break 126 127# キャプチャをリリースして、ウィンドウをすべて閉じる 128cap.release() 129cv2.destroyAllWindows()

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

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

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

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

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

otn

2021/01/10 08:31

とりあえずは、自分の理解している範囲で、インデントを付けて書いてみましょう。
ppaul

2021/01/10 08:34

```python import nnabla as nn ・・・ cv2.destroyAllWindows() ``` というように、ソースコードの前後に「```python」と「```」を入れてください。
quickquip

2021/01/10 09:05

"インデントってなんですか?"という質問でしょうか?
max12345

2021/01/10 09:10

インデントエラーとなっているのですがいくら書き換えても同じエラーが起こってしまいます。
退会済みユーザー

退会済みユーザー

2021/01/10 09:15

どこかからコピペしたものでしょうか?
jbpb0

2021/01/10 09:30

今のままだとインデントがどうなってるか他人には分からないので、ppaulさんがこの上に書いてるやり方で質問を編集してください
ppaul

2021/01/10 09:41

エラーが出ませんね。
ppaul

2021/01/10 09:43

いや、エラーが出ました。 IndentationError: unindent does not match any outer indentation level ですね。
ppaul

2021/01/10 09:44

77行目から7空白になっているので、それを修正してください。
guest

回答1

0

ベストアンサー

インデントエラーを取りました。
あと、\を\に変えました。

import nnabla.functions as F import nnabla.parametric_functions as PF from nnabla.utils.data_iterator import data_iterator_csv_dataset import os import cv2 from datetime import datetime import pandas as pd import matplotlib.pyplot as plt import numpy as np from PIL import Image def network(x, y, test=False): # Input:x -> 3,250,250 # MulScalar h = F.mul_scalar(x, 0.003921568627450981) # DepthwiseDeconvolution -> 3,256,256 h = PF.depthwise_deconvolution(h, (7,7), name='DepthwiseDeconvolution') # ReLU h = F.relu(h, True) # MaxPooling -> 3,128,128 h = F.max_pooling(h, (2,2), (2,2)) # Convolution -> 16,128,128 h = PF.convolution(h, 16, (3,3), (1,1), name='Convolution') # MaxPooling_2 -> 16,64,64 h = F.max_pooling(h, (2,2), (2,2)) # Tanh h = F.tanh(h) # Affine -> 100 h = PF.affine(h, (100,), name='Affine') # ReLU_2 h = F.relu(h, True) # Affine_2 -> 26 h = PF.affine(h, (26,), name='Affine_2') # Softmax h = F.softmax(h) # CategoricalCrossEntropy -> 1 #h = F.categorical_cross_entropy(h, y) return h cap = cv2.VideoCapture(0) # 任意のカメラ番号に変更する new_dir_path = "./realtime/" os.makedirs(new_dir_path, exist_ok=True) #カメラスタート while True: ret, frame = cap.read() cv2.imshow("camera", frame) k = cv2.waitKey(1)&0xff # キー入力を待つ if k == ord('p'): # 「p」キーで画像を保存 date = datetime.now().strftime("%Y%m%d_%H%M%S") path = new_dir_path + date +".png" cv2.imwrite(path, frame) image_gs = cv2.imread(path) path = new_dir_path + date +".png" dst = cv2.resize(image_gs,(250,250)) cv2.imwrite(path, dst) f = pd.DataFrame(columns=["x:data","y:data"]) xdata = path ydata = 0 new_name = pd.Series([xdata,ydata],index=f.columns) f = f.append(new_name, ignore_index=True) f.to_csv('C:\Users\username\Desktop\output\valu.csv',index=False,header = True ) test_data = data_iterator_csv_dataset("C:\Users\username\Desktop\output\valu.csv",1,shuffle=False,normalize=True) #ネットワークの構築 nn.clear_parameters() x = nn.Variable((1,3,250,250)) t = nn.Variable((1,1)) y = network(x, t) nn.load_parameters('\Users\username\Desktop\output\yubidata.files/20210108_180946\results.nnp') print("load model") path = new_dir_path + "test" +".png" cv2.imwrite(path, frame) image_gs = cv2.imread(path) path = new_dir_path + date +".png" dst = cv2.resize(image_gs,(250,250)) cv2.imwrite(path, dst) f = pd.DataFrame(columns=["x:data","y:data"]) xdata = path ydata = 0 new_name = pd.Series([xdata,ydata],index=f.columns) f = f.append(new_name, ignore_index=True) f.to_csv('C:\Users\username\Desktop\output\valu.csv',index=False,header = True ) test_data = data_iterator_csv_dataset("C:\Users\username\Desktop\output\valu.csv",1,shuffle=False,normalize=True) #ネットワークの構築 nn.clear_parameters() x = nn.Variable((1,3,250,250)) t = nn.Variable((1,1)) y = network(x, t) nn.load_parameters('C:\Users\username\Desktop\output\yubidata.files/20210108_180946\results.nnp') print("load model") for i in range(test_data.size): x.d, t.d = test_data.next() y.forward() print(y.d[0]) elif k == ord('q'): # 「q」キーが押されたら終了する break # キャプチャをリリースして、ウィンドウをすべて閉じる cap.release() cv2.destroyAllWindows()

投稿2021/01/10 09:54

ppaul

総合スコア24670

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

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

jbpb0

2021/01/10 15:33

下記の3行は、インデント要らなくないですか? cap = cv2.VideoCapture(0) new_dir_path = "./realtime/" os.makedirs(new_dir_path, exist_ok=True)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問