はじめてのGitHub【1/19】
今までは、書籍でコードを書きながら機械学習やニューラルネットワークの原理、CNNの構成の勉強を。kaggleではテストデータに対する予測値をcsv形式でsubmitするだけでした。これからも数学・統計学的な面からの勉強も続けるが、学習させたモデルを実環境にデプロイ(利用可能)することも大事だと思いDjangoでのWebアプリ開発をしました。(ものづくりの大変さと楽しさを実感)
GitHubは夏頃、JetsonNanoの環境構築やdarknetのyolo-v3のインストールのためにアカウントを作成したがソフトウェア管理には使っていませんでした。今回作成したアプリと個人的に作ったPHPをGitHubにあげてみた。
やったこと
- リモートリポジトリへのcommit&push
- .gitignore(管理対象外ファイルの指定)
リモートリポジトリへのcommit&push
いろいろと調べるとソースコード管理だけでなく複数人でのソフトウェア開発管理などに使われ、闇奥が深そうだった。とりあえずブランチもろもろは置いておいてGitHubにソースコードをあげて管理できる状態にすることを目的にしました。
.gitignore(管理対象外ファイルの指定)
PHPはデータサイズも小さいため公式チュートリアル通りに進めてGitHubにあげることができた。しかしデータサイズの大きいDjangoはGitHubの制限である100MBを超えてしまい失敗してしまいました。主に独立した開発環境を用意するための"venv"とvgg16をファインチューニングさせたモデルをまとめた.h5ファイルなどが原因でした。
他にも各OSに依存したドットファイルはGitHub的に不要なので上記のデータサイズの大きいファイル同様に管理対象から外したい。
これらを可能にする.gitignoreに対象ファイルを書くことで無視できるのだが、一体何が必要で何が不必要なのかが十分に理解できておらず、「別の環境に移したくてもうまくいかない」みたいなことが起きてしまう懸念。
これから
GitHubはエンジニアに限らず、これから必須になるツールの一つだと思うので全容が把握できるようにしたい。今回もcommit前の状態に戻すためrevertコマンドを打ったらローカルのファイルが消失する事故も。。。しっかりと経験しながら理解していきたい。
Kaggleも参加しやすい新しいコンペが出たら、自分自身で一から上位を狙っていきたい。