らんだむな記憶

blogというものを体験してみようか!的なー

Qiskit (55) —量子機械学習

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

f:id:derwind:20220223161802p:plain

普通に収束している。

Performance on test data:
	Loss: -0.9852
	Accuracy: 100.0%

いい感じ。

自動微分の拡張の実装は馴染みがないのだが、PyTorch デザインノート : PyTorch を拡張する が参考になる。

*1:畳み込み層を使っているのでニューラルネットワークとしてそう見えたが、実際は勘違いで、量子回路の層が書籍付属コードのほうが重くて、そこで時間を食っていた。