質問: ここでshow_result(0)で実行すると runfile('C:/Users/user/.spyder-py3/untitled6.py', wdir='C:/Users/user/.spyder-py3') Epoch 1/1 30000/30000 [==============================] - 71s 2ms/step - loss: 0.2707 show_result(0) Traceback (most recent call last): File "", line 1, in show_result(0) File "C:\Users\user\.spyder-py3\untitled6.py", line 60, in show_result IndexError: invalid index to scalar variable. がでてしまいます。
回答: ``` print(test_images_noisy) ``` をエラーが出た後に実行したらわかるように、0という値が一個だけですけど、作りたいものはそれで合ってますか? 配列を作りたいのではないのですか? ``` test_images_noisy = test_images[:, 13:15, 13:15, 0]=0 ``` が間違ってます その行でやろうとしている処理を、二つに分けて考えてみてください 二つをいっぺんにやろうとしないで、一つずつやる(行も分ける) 一つ目は、test_images_noisyにtest_imagesをコピーする コピーですから、データは全部同じになるので、配列ができます 二つ目は、test_images_noisyの一部に白を代入する 下記は左上の3x3画素を白くする例です ``` print(test_images_noisy[0:3, 0:5, 0:5, 0]) # 元々は左上は黒(0.0)であることを確認 test_images_noisy[:, 0:3, 0:3, 0] = 1.0 # 左上3x3画素に白(1.0)を代入 print(test_images_noisy[0:3, 0:5, 0:5, 0]) # 白が代入されたことを確認 ``` 0を代入したら黒になります 白は1.0です test_imagesをコピーしてtest_images_noisyを作った時点で、既に値の範囲が0.0~1.0だからです