Python始めたての頃から今にかけて学んだこと
初めに(著者の現在)
私は今大学院1年の前期課程にて深層学習の研究を行っている者です。研究ではCT画像データやその加工データであるPLYデータなどを用いて特徴量を算出し、畳み込みニューラルネットワークで学習して最終的に骨表面においての骨折の自動診断を目指し、日々猪突猛進しております。ファースト著書の論文がありますのでご興味があれば読んでいただければと思います。(論文に関するコメントも何かあればお願いします(´;ω;`))
https://ieeexplore.ieee.org/abstract/document/9231453
書くに至った動機
なぜこの記事を書こうと思ったのかをここで述べておくと、Pythonを使い始め2年が経とうとする中新たな新入生が入ってきた時のためにこの記事を参考にPythonを使用するに当たって暗黙知的な部分を参考にしてもらおうかなと思い立っためです。(本当は現在実行中のプログラムの待ち時間がかなり長そうに感じたため)
筆者のおすすめPythonツール
まず、みなさんがPythonを使い始めようとした際にどのツールを使用するか迷う必要はあまりないかなと思います。順を追って説明したいとは思いますが、参考程度に一度インストールしてしまって使用しながら慣れていけばよいと思います。おそらく初心者が一番躓くであろう環境設定については初めにAnacondaをダウンロードすればよいかなと思います。このダウンロード部分に関しては検索しながらダウンロードすれば問題なく行けるはずです。
(参考URL1)https://sukkiri.jp/technologies/ides/anaconda-win_install.html
こんな感じにPythonで使用するツールの一覧が現れます。便利ですよね。(いや、まだ何も分かりませんわ)
この中で初心者にお勧めなツールは圧倒的にJupyter Notebookです。さっそくLaunchを押してみましょう。(使用方法うんぬんは割愛)
(参考URL2)https://www.javadrive.jp/python/jupyter-notebook/
ふと実行コードを見返していると意味が分からないのはさておき、JupyterNotebookはこのように一つ一つの塊(セル)を実行していけるのが初心者に優しいです(個人的な思い)
ここで一つ一つ実行しながら試行錯誤しながらどんな挙動を取るのか逐一確認するのが最初に行っていたことです。ここでは参考書などの短いコードを試したい場合にお勧めです。
加えてJupyterNotebookにはショートカットキーが複数存在します。後述するつもりではいますが、爆速で実行し試行錯誤する場合ショートカットキーは必須なので初期のころに慣れている方がよいかと思います。詳細はJupyterNotebook上部の一番右側をクリックすればすべて出てきます。個人的に初期は実行コマンド(Shift+Enter)とEsc or Enterでセルコマンド入力の切り替えができることを意識すればよいかと思います。
加えて初期のころに知りたかったこととしてコメントアウトをどう行うかです。
上記のコマンドで説明していきます。この三行のうち真ん中の行を消したいとします。今の私がどのように行うかですが、‘a=0’の部分を三回クリックし一行選択を行った後、Ctr+'/'コマンドでコメントアウトします。これで実行するとどうなるのか。
真ん中のコードが無効化された事が分かります。また、同じ操作を繰り返すと元に戻って実行できることも確認できるかと思います。後々便利になること間違いなし!これは後に説明するPycharmでも使用できますのでご参考までに、、、
このままJupyterNotebookで学ぶのもアリではありますが、サンプルコードや実行文が長いものを実行した際にどこでエラーが出ているのかを確認しづらいです。また、自分では同じ変数名を指定しているつもりでも1文字でも間違っていると(タブやカンマ、ダブルクォーテーション等も同様)客観的な視点が無く、気づきづらいです。
ですの長いコードを書くようになってきた際にお勧めなのがPycharmです。デスクトップ版のインストール方法や開発方法等は下記を参照すれば問題ないかと思います。私はこのInterpreter部分はAnacondaに入っているPythonを指定していますが、困ってからいじれたりもするので環境構築などは困ったときにその都度考えればよいと思います。ちなみにAnacondaNavigaterの中にも入っているということには最近気づきました。
https://gammasoft.jp/python/pycharm-install-on-windows/
Pycharmに関しては長くなりそうなため一旦ここで閉じさせていただきます。私にはまだまだ端的に説明をまとめるという力がない事を改めて痛感したため、性懲りもなく試行錯誤しながら頑張っていこうと思います。
研究をする中で思う事
2021/01/06 現在大学院2年になり,研究でも学会に複数参加する程度まで経験を積んだ中で,
これから研究に取り組む人達へ餞の言葉を送りたいと思います.
・楽しめ!
まず,研究やエンジニアという言葉を聞いた際に,直感的に私が当初考えていたこととしては
「しんどい」「難しい」「わかんねぇ」
といった言葉たちでした.確かにそういった事も少なからずありましたが,研究を進めていく中で
「すげぇ」「おもろい」「なんでもできるんじゃね?」
というような感覚も得ました.(実際に上手くいっているかどうかはさておき)
そういう気持ちを忘れずに,これからも色々と学んでいきたいと私個人としても考えています.
・ミーハーであれ!
世間一般でいうとミーハーという言葉自体がもはや死語感満載ですが,
新しい技術が出たら興味を持ってやってみろという事です.
また,この経験はエンジニアとしての就職活動にも,優位に働く可能性が高いのでオススメです.
(一つの技術を極めろと言われるかもしれませんが,state of the artはすぐに更新されるため)
・エゴイスト上等!
言葉が適当かどうかは分かりませんが,そういう気概が重要という事です.
研究をするのは自分自身なので,あなたが考える手法をどんどん試していってください.
少なくとも私が所属した研究室ではそういった自主性が重要でした.
(逆にそうでない研究室は情報系には少ない気がする)
あと,論文執筆でも就活でも自分の研究のアピールポイントみたいな部分は聞かれるので,
自分がいかに凄いか,優れているか
(他の研究と比較できるのがベスト,なければあなたはその分野でのPioneer)
を自信満々に書いたり,話してください.
自信なさげに話されると,私は大したことないんかな?と思うので(いやお前の主観かい!)
最後に,私は2022年3月末まではまだ現研究室に所属していると思いますので,
何か悩んでいる事や相談しようと思っている事があれば,色々気軽にお話ししましょう!