質問: TensorflowでDCGANを試みています。その過程で発生するエラー解決の手助けをしていただきたいです。 実際のコードは下記の通りになりますが,少し長くなるのでmarkdownではなくスクリーンショットでコードを示しますが,目を通していただけると幸いです。Colabolatoryで実行しています。 ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/b06e54a7b911248e31a9a2e5200c3597.png) ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/5f6f881e615e278d46979de7de809f58.png) ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/a35efc4eef33cbd6b701e667b8e3ecb9.png) ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/2434a830c8c90a8128bfd33a9c9d025d.png) ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/83e29efc965ec5fafa6ffff03677922d.png) ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/55ac473b750ce8b4ef81da9f39248016.png) ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/2ab53017c9b3839e85c8be3e8e1efde3.png) ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/53094b0520233bb67196a1a491eeb5d5.png) このようにトレーニングの実行時にエラーが発生します。エラー文を見ると,最初(1枚目の画像)に読み込んだNumpyの配列に問題があり**a.anpy()**や**a.all()**を使えばいいという事はわかるのですが,該当する部分がわかりません。 「train_img, test_img, valid_img」には画像をnumpy配列に変換したものが入っており,「train_index, test_index, valid_index」には画像データに対応するラベルが入っています。 どこをどのように修正すればこのエラーが解決できるのか,もし知っている方がいらっしゃればご教示願います。
回答: エラーメッセージは 「The truth value of an array with more than one element is ambiguous.」(直訳: 1より大きい(二つ以上の)要素を持つ配列の真理値は曖昧)という事です。 質問に入っている一番下のスクリーンショットを見ると、 ``` if self.shuffle: ``` という行でエラーが起きているようですので、self.shuffleの値は、真理値の配列(例えば、[True, False, False, True]のような配列)なのだと推測されます。 真理値の配列を真理値(TRUEかFALSEのいずれか)に変換するには、.all(配列の要素がすべてTRUEの場合にのみTRUEで、それ以外はFALSE)か、.any(配列の要素に少なくとも1つのTRUEが含まれていればTRUE、すべてFALSEならFALSE)を使えば良いとの助言がされています。 ただ闇雲に.allや.anyに飛びつく前に、 "if self.shuffle:" というコードの持つ意味を確認すべきだと思います。 意味が判れば、修正方法は自ずと明らかになるのではないでしょうか。