見出し画像

Pythonプログラミングの勉強は意外と楽しい!

こんばんは、今日も楽しかったですね!
人生楽しみましょう!
楽しんだもん勝ちです1!

さて、何が?と聞かれると、今日のトピックスです。

そんなことか(笑)と言われることを承知で、書きます。

59歳の時なので、今から2年前から、プログラミング(Python)にトライしては挫折してました。
ところが、この年末年始に、DeepLearning(AIの機械学習)のプログラミングの本を見つけ、ニューラルネットワークの構築と、学習の初期段階の理論とプログラミングを勉強して、だいたい分かってきました。

実際、テキストにあるプログラムを打ち込んで、学習するスタイルですが、いつもエラーが出て、その修正に取り組むことで、PYTHONもAIの基礎も理解が進みました。

楽しかったです!

それから、気がついたのですが、PYTHONによるプログラミングの理解がだいぶ進んだことです。
ライブラリやクラス、などなど、いろいろ理解がなかなか進まなかったのが一気に進んだ感じです(そんなことも分からんかったんかい・・・とお叱りを受けるかもですが・・・・)

楽しさには、実は、もう一つ仕掛けがあります。

ChatGPT

です。

エラーでわからないところや、こんなプログラみが作りたいと聞いてみると回答が返ってくる。
もちろん、すぐに、そのまま動かないことが多かったのですが、ところが 「o1」になってから、正解率が高くなりました。(感覚です)

それだけだと、何も学習にも、レベルアップにもつながりませんので、何がどうなのかを理解した上で、プログラムを作り、走らせてきました。

そうすると、学習速度が格段に上がったと実感しています。

そこで、冒頭の画像の話になります。

マンデルブロ集合のプログラムは30年ほど前にfortranという言語(今では知らない人の方が多いだろうなと思いつつ・・・・)で作ってましたので、Pythonで作り直しました。

バグが出たので、ChatGPTに修正をお願いし、なんとか動くようになったのですが、計算が遅い!

いろいろ調べていると、並列計算がされていないことがわかりました。

私のPCは MacBookPro M2Max 64GBですので、CPUも早いはず。
でなんとか、これまでやってきましたが、繰り返し数を大きくすると時間がかかっている。

そこで、並列計算させるために、ChatGPTにもとのプログラムを入力して、並列計算できるように改良するように指示しました。

出てきた第一回答は残念・・・CUDAライブラリをインポートする必要がありましたが、めんどくさいので、CUDAを使わずに並列計算して。とお願いしました。

すると、いくつかの選択肢が提示され、少し前にも経験していたので、Multiproccesingを使うように指示したところ、見事に今の環境で動きました。

そこで、繰り返し数を大きくして、並列計算なし/あり で比較した結果、
約6倍の高速化になりました。

面白い!

これで、次に進むモチベもアップして、楽しいプログラミングライフを過ごせそうです。

また、進捗は、ご報告しますね。

ではでは。。。


いいなと思ったら応援しよう!