snovaのブログ

主にプログラミングやデジタルコンテンツについて書きます。最近はPython, Flutter, VRに興味があります。

第2種電気主任技術者に合格した話

はじめに

私の本職は工場の電気設備エンジニアなのですが、工場で仕事をする設備エンジニアは多くの資格が必要となります。 電気主任技術者もそのうちのひとつで、どこの工場でも必ず選任しなければなりませんが、難関資格のため取得が容易ではありません。

今回は、第2種電気主任技術者試験にどのように合格したかを備忘録を兼ねてまとめたいと思います。

目次

電気主任技術者とは

電気主任技術者とは事業用電気工作物の保安監督を行う資格のことです。 細かい資格範囲は法令に記載されていますが、ざっくり言うと、高圧(交流600V以上)や特別高圧(7000V以上)の電気で受電、発電、変電、送配電する設備を運用する場合に電気主任技術者が必要となります。

www.shiken.or.jp

電気主任技術者には扱える電圧によって3種類あり、以下のように分かれています。

また、資格の取得方法は、大きく2種類あります。

ですが、実務経験で取得するには長い期間仕事をする必要があるし、面接準備も大変だったと先輩から聞いたことがあります。

電験3種を振り返って

電験3種の時はマークシートのみだったので、「完全マスターシリーズ」を何度も反復しました。

また、過去問は電気試験センターの公式サイトにアップされている問題を解きました。

www.shiken.or.jp

結果、1年目では理論、電力、法規の3科目合格、2年目で機械が合格となり、免状を取得しました。 電験3種は3年間で4科目を合格すれば良く、この時はまだ学生だったので、勉強時間は特に問題になりませんでした。

電験2種の勉強方針

しかし、電験2種では3年以内に1次試験、1次合格後その年を含め2年以内に2次試験に合格しないといけません。 また、1次試験は科目合格制度がありますが、2次試験は科目合格がありません。 そのため、2年間で2次試験まで合格することを目指し、もし2年目で2次試験がダメだった場合、バックアップとして3年目に2次合格を目指しました。

  • 1年目 : 1次2-3科目合格
  • 2年目 : 1次合格、2次試験合格

※なお、1年目で1次試験に合格すると、実質1年半で2次試験に合格しないといけなくなるので、2次合格がとても難しくなります。

また、朝早くから夜遅くまで会社で働いており、時間の確保も課題でしたので、

  • 通勤時間は暗記と演習の時間
  • 会社の昼休みは演習の時間
  • 休日も必ず問題を解く

を目標にしました。

1次試験対策

電験2種の1次試験は電験3種+αのレベルですので、とにかく何度も反復して暗記しました。 理論は3種と比べ難しくなっているので、大学の時に使っていた教科書も読み返しました。

使用した参考書はこちら。

選んだ理由は、2点ありました。

  • 3種で完全マスターシリーズを使用していた
  • 本屋で他の本と比較した時、難易度がちょうどよかった

また、試験の2, 3か月前からは、過去問演習しました。 本屋には過去問と解説が記載されている参考書もありましたが、

  • 通勤に重い本を持ち歩くのは大変
  • お昼休み時間に事務所が暗くなるので読みにくい
  • お金がそこそこかかる

という理由でやめました。

代わりに、非常にお世話になったサイトが電験王さんです。

denken-ou.com

見やすいレイアウトとわかりやすい解説で、特に通勤時間と昼休み時間に重宝しました。

結果、1年目で理論と機械と法規の3科目、2年目で電力に合格しました。

2次試験対策

2次試験が難関で、勉強を始めた頃は参考書の内容がほとんどわかりませんでした。 そこで、まずは2次対策の参考書の内容を暗記することから始めました。

使用した参考書はこちら。

選んだ理由は、

  • 「キーワード」や「戦術」を覚えるので、最初の暗記にはちょうど良いと感じた
  • 2次試験の2科目を2冊にまとめていた

実際に使ってみて感じたことは、

  • 難易度が実際の試験のレベルなので、この2冊で十分合格が狙える
  • 掲載されている問題の類題が実際に出題された
  • 電験2種では比較的新しい技術に関する問題も出題されるが、掲載されている問題が古いため、新技術の問題に対応していない

また、過去問は1次試験と同様、電験王さんにお世話になりました。

その結果、1次試験合格した年の2次試験に一発合格することができました。

その他参考にしたもの

私は電気工学もあまり得意とは言えないのですが、それ以上に数学が得意ではありません。 ですので、復習のために電気数学の参考書も購入しました。

また、参考書や過去問を解いていく上で、わからないことやもっと説明が欲しかったときはインターネットを使いました。 その中でも、特によく参考にしたサイトが電気の神髄さんと日本電気技術者協会さんです。

denki-no-shinzui.com

jeea.or.jp

どちらのサイトも電気の参考書を読むような感覚で、わかりやすく解説してあるので、非常に重宝しました。

おわりに

昨年度は電気工事士電験2種の勉強で他の資格が勉強ができなかったので、今年度は情報処理試験(APあたり)と実務で必要な消防設備や環境関係の資格を取得予定です。 また、数年後には(実務で必要ないけど)電験1種にも挑戦したいと思います。

Dockerを使ってPytorchのsec2secサンプルプログラムを動かすまで(M1 MacbookAir)

はじめに

M1 MacbookでDockerを使いPyTorchが動くようになったので、備忘録です。 まだM1チップに対応していないアプリケーションもあり、今後も同様の方法で動作するかはわからないので、変更があれば修正していきたいと思います。

目次

DockerからPythonの起動

Dockerデスクトップをインストールします。インストール方法は過去記事を参照してください。

snova301.hatenablog.com

※2021/3/26にApple Silicon Tech Previewのアップデートが行われたようです。

次に、Pythonのイメージをインストールします。M1チップに対応するPythonのバージョンは3.9以降ですので、今回はバージョン3.9.2Pythonイメージをpullしてコンテナをrunさせます。

docker pull python:3.9.2
docker run -i -t --name torchtest python bash

コンテナが無事に起動できたらOK。

root@***:/# python
Python 3.9.2 (default, Mar 12 2021, 14:36:23) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

PyTorchの導入

先ほど作成したコンテナの中にPyTorchを導入します。今回はPythonイメージからコンテナをrunしていますので、ついでに、numpyなどもインストールします。

pip install --upgrade pip
pip install numpy matplotlib pandas scikit-learn pandas scipy

# pytorch
pip install torch torchvision

テキストの前処理をしてくれるtorchtextは、pip installだと2021/3/27現在でバージョン0.6がインストールされてしまうので、公式Githubから最新バージョンのtorchtextをcloneします。なお、PyTorchのバージョンが1.8だと、torchtextは0.9以上でなければなりません。

apt update
apt upgrade -y
apt install cmake
git clone https://github.com/pytorch/text torchtext
cd torchtext
git submodule update --init --recursive
python setup.py clean install

また、vscodeなどのDockerに接続できるエディタを使っていない場合、vimlessあたりは必要だと思うので導入します。

apt install -y less vim

一通りインストールできたら、pip listで各モジュールのバージョンを確認しておきましょう。

PyTorchを実行

インストール関係が全て終了したら、公式チュートリアルを動かしてみます。まだ、Dockerに慣れていないので、原始的な方法でファイルを作成します。

mkdir workdir
cd workdir
touch test.py
vim test.py

ソースコードは以下の公式サイトを参照。

pytorch.org

実行します。

python test.py

無事に動きました。epoch=1で実行した結果は以下の通り。公式の結果より悪いですが、epoch数を減らしたからだと思います。

| end of epoch   1 | time: 1038.88s | valid loss  5.80 | valid ppl   331.51
-----------------------------------------------------------------------------------------
=========================================================================================
| End of training | test loss  5.72 | test ppl   305.24
=========================================================================================

まとめと今後について

M1 MacbookでPyTorch on Dockerができるようになりました。今後はPyTorchを使って、自然言語処理のプログラムを作成し、共有していきたいと思います。

参考サイト

※いずれも2021/3/27参照

dockerを使ってmacbookとwindowsの開発環境を揃える

はじめに

私の開発環境は5年ほど前からmacbookメインでしたが、1年ほど前にそこそこいいwindows PCを購入したので、2台を併用してプログラム作成に取り掛かっています。

なぜ、1台に統一しないのかというと、

  • macbookは場所を持ち運べるが、windows PCはデスクトップなので持ち運び不可
  • macbookは簡単な計算には最適だが、ヘビーな計算は不可
  • windows PCはそこそこいいCPUとGPUとメモリを積んでいるので、動作は軽快

最近、apple silicon m1のmacbook airに更新しましたが、やはりスペックの問題からヘビーな計算はデスクトップwindows、気軽にプログラムを作るのはmacbookとなってしまい、当面は2台で開発を進める必要があるのかな、と考えてます。

しかし、2台で開発環境を整えるには課題があり、パッケージ追加やアップデートの度に、環境を揃えなければなりません。

そこで、今回は2台の開発環境をできるだけ簡単に揃えるために、dockerを用いて開発環境を構築します。

目次

mac

流れとしては、

  • docker hubのサインアップ
  • Docker Desktop for Macのインストール
  • dockerコンテナの生成起動
  • コンテナの中を操作

docker hubのサインアップとdesktop for macのインストールはこちらから。 https://hub.docker.com/editions/community/docker-ce-desktop-mac

M1のmacbookpreview版のみに対応しています。 ファイルのダウンロードや最新の情報はこちらから。 https://docs.docker.com/docker-for-mac/apple-m1/

コンテナの生成起動方法は、

docker run -it --name [containername] [imagename] bash

最後の、bashの記述がないと、コンテナ実行後すぐにイメージが起動します。 また、dockerコンテナ起動時にイメージがダウンロードされていなかったら、自動でダウンロードされます。

その他、コンテナを動かすために必要なコマンドをまとめます。

役割 コマンド
稼働コンテナ一覧 docker ps -a
コンテナの起動 docker start [option] [containername]
コンテナへの接続 docker attach [containername]
コンテナの削除 docker rm [option] [containername]
ホストコンピュータからコンテナへファイルを渡す docker cp [original filepath] [containername]:/[container filepath]

例えば、ubunt18.04のイメージからhogeというコンテナを生成するし、起動するとき

docker run -it --name hoge ubuntu:18.04 bash
docker start hoge
docker attach hoge

Dockerfileの作成とビルド

dockerfileは設計書のようなものです。 Dockerfileというファイル名の中に、テキストでコンテナの情報を記述していきます。

例えば、ubuntu18.04のイメージからコンテナを起動して、pythonをインストールし、pythontest.pyというファイルをホスト側のカレントディレクトリからイメージ側のhomeディレクトリにコピーするとき、

FROM ubuntu:18.04

RUN apt-get update
RUN apt-get install -y python3 python3-pip

ADD pythontest.py home/pythontest.py

ファイルを作成したら、Dockerfileをbuildしてイメージを生成します。

docker build -t [imagename] [Dockerfileのファイルパス]

カレントディレクトリにDockerfileがあるなら、

docker build -t imhoge .

ちなみに、[imagename]はすべて小文字でないと、怒られます。

終了したら、docker images -aでイメージが作成されているか確認し、イメージが作成されていたら、runさせコンテナを生成します。

windows

流れとしては、

  • docker hubのサインアップ
  • Docker Desktop for windowsのインストール
  • dockerコンテナの生成起動
  • コンテナの中を操作

ここでは、Docker Desktop for windowsの導入をおこないます。

私の環境はwindows10 Homeだったので、ちょっと前まではDockerの導入ができませんでしたが、最近はHomeでも簡単にDockerを導入できるようになったので、導入することにしました。

方法は簡単で、公式ダウンロードページから、アプリケーションをダウンロードし、手順に乗っ取りインストールを進めます。 途中、WSL2に関するインストールが求められるので、MS公式サイトを参考に、WSL2をインストールします。

WSL2を立ち上げることができたら、Docker Desktopも起動可能となリ、Dockerを起動できれば、Dockerfileから開発環境を揃えることができます。

まとめ

環境を揃えるためには、Dockerは非常に有効なツールです。 コンテナの技術は奥が深く、まだ発展途上なので、私も勉強をかかさずにしたいと思います。

参考文献

Google Play and the Google Play logo are trademarks of Google LLC.