Hybrid quantum-classical Neural Networks with PyTorch and Qiskit
これを実行してみる。書籍の付属コードと同様に
UserWarning: Creating a tensor from a list of numpy.ndarrays is extremely slow. Please consider converting the list to a single numpy.ndarray with numpy.array() before converting to a tensor. (Triggered internally at ../torch/csrc/utils/tensor_new.cpp:201.)
が出てしまうが、具体的な箇所と対策方法がまだ分からない・・・。付属コードとは違ってまともな速度で訓練が進む。見た目上 textbook のほうが複雑なネットワークなのだが・・・?*1
普通に収束している。
Performance on test data: Loss: -0.9852 Accuracy: 100.0%
いい感じ。
自動微分の拡張の実装は馴染みがないのだが、PyTorch デザインノート : PyTorch を拡張する が参考になる。
*1:畳み込み層を使っているのでニューラルネットワークとしてそう見えたが、実際は勘違いで、量子回路の層が書籍付属コードのほうが重くて、そこで時間を食っていた。