第伍回開発合宿：その先にあるものとは！？

こんにちは、はじめまして、株式会社アクシス福岡オフィスのtakimotoです。
数えること5回目、そして今年最後の弊社開発合宿を12月14日に開催しました。
バックナンバーは以下よりどうぞ！
[第一回: やっていくばい！開発合宿@福岡](https://qiita.com/michida/items/bf2c150e94e231795685)
[第二回: 第二回開発合宿を開催: 話題のFlutterでSNSアプリ開発](https://qiita.com/aoki_s/items/828299f41c5134ba65ca)
[第三回: 第三回開発合宿: チーム開発本格始動！](https://qiita.com/fumiya-uehara/items/d5e10380299a22995c64)
[第四回: 【Vue.js and Nginx on Docker】第四回開発合宿【環境構築エラーの嵐】](https://qiita.com/kaz_goto/items/d7f0b72e6f098e9e3b15)
# あなたは誰？
社会人18年目くらいのエンジニアです。前回のgotoよりちょっと、、、いやかなり年上です(汗)
日々迫り来る老化とショボショボになる老眼に立ち向かいながら、「若(わ)けぇのには負けたくねぇんだよ！」という反骨精神で私もこの開発合宿に参加するようになりました。
心だけは永遠の16(43)歳(`･ω･´)

# 開発合宿とは
弊社社員がそれぞれアイデアを持ち寄って、思い思いのものをチームまたは個人で作成する強化合宿型の勉強会です。

興味のある技術、新しい手法、知らない分野などを積極的に取り入れ自分のものにし、日々の業務に活かせることを目的にしておりますが、そこまでお堅い集まりでもなく、みんなゆる〜く、そして楽し〜く取り組んでおります。
お菓子もあるよ(ﾟ∀ﾟ)

# 開催場所
**いつもとは違う環境で！**という思いもあり、社外のレンタルスペースを利用させていただいています。
今回もスペースマーケットで博多のレンタルスペースをお借りしました。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482024/dc415e97-c7b3-6287-c1a8-76cffef5b161.jpeg" width=50%>

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482024/b47834c4-1862-a56a-5d70-bb4dd957dda0.jpeg" width=50%>

# テーマ
5回目ということで各々テーマやアイデアも固まっており、集合と同時に皆迷うことなく自分の作業に没頭していきます。

* チーム・アプリ開発
 + バックエンド（Golang）
 + 環境構築
 + テーブル設計
 + フロントエンド（Vue.js + TypeScript）
 + 画面実装
* 筋トレアプリ開発(Android+kotolin)
* 書籍管理(Laravel+Vue.js)
* 機械学習のチュートリアル(Anaconda+TensorFlow)←__takimotoはコレ__

# TensorFlowと私
今回の私のテーマは__TensorFlow__です。
現在私がこの合宿で構築しているシステムで、どうしてもAIによる判断が必要なフェーズに突入してしまいました。

簡単に説明すると「ある画像から連想される別のキーワードを導出する」というものです。
たとえば「みかん」の画像から「甘い」「すっぱい」「果物」「オレンジ色」などなど。
これを、興味本位もあり、AIで実施できないか？という考えが今回私が取り組むきっかけになった大まかな概要です。

# AIとTensorFlow
とはいえ、AIの事をまったくわからない私がGoogleを駆使してたどり着いた一つの答えがこの**TensorFlow**になります。

```
TensorFlow（テンサーフロー)とは、Googleが開発しオープンソースで公開している、
機械学習に用いるためのソフトウェアライブラリである。
```

おー、コレコレ！(わかっていない)
そんな感じで着手しました(ノリと勢いが大事だよね！)

# 環境構築
兎にも角にも環境がないと動かすことすらままならないTensorFlow。
今回は以下の環境を使用しました。

* Anaconda
* TensorFlow 2.0

この2つだけで機械学習が始められます。

導入はこちらの記事を参考にさせていただきました。
https://qiita.com/FukuharaYohei/items/d8f82c827e0bae70096a

# え、、、私のTensorFlow高すぎない！？問題
先ほどの記事を元にAnaconda＋TensorFlowインストール後、Terminalを起動！
![スクリーンショット 2020-01-15 9.49.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482024/08f539a1-b667-58f3-f874-42081b4b823f.png)

そして古からの盟約(＝お約束)である「Hello World」をいざ実行！

```python
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
```

、、、なんかエラーでてるんですけど！？
この歳で「Hello World」が一発で動かないとショック大きいです。(歳は関係ない)
![スクリーンショット 2020-01-15 9.49.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482024/4d7d30c0-ebe1-8e1f-1846-af942d88ce7c.png)

で、色々調べたところ、どうやら2019年12月14日現在の最新TensorFlowのバージョンは2.0とのこと。
記事のバージョンは1.3ということで、一部仕様の変更が行われた様子、、、どうやらこれが問題らしい。

バージョン2.0だと

```python

import tensorflow as tf
msg = tf.constant('TensorFlow 2.0 Hello World')
tf.print(msg)
```

これでいいみたい。
実際に実行し、問題ないことを確認しました。
![スクリーンショット 2020-01-15 9.49.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482024/2256f2b7-15c6-93bd-180d-8f0f19debfd7.png)

ここからさらにGoogleが用意するTensorFlowのチュートリアル「ファッションMNIST」と「映画レビューのテキスト分類」について行いましたが、これはまた次の機会に。
チュートリアルは下記にありますので、興味のある方は覗いてみてください。
https://www.tensorflow.org/tutorials/quickstart/beginner?hl=ja

# 番外編：恒例のランチタイム
博多と言えばコレでしょう！ということで、今回は豚骨ラーメンです。
博多ラーメンは替え玉ができますので、「もう少し食べ足りないな」という場合は、迷わず替え玉しちゃいましょう。
お店によっては「替え玉半分」が注文できるお店もありますよ！

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482024/d867fdbf-9f73-97e2-fbd7-5f9a75b54e60.jpeg" width=50%>

# 番外編 その２：その先にあるものとは、、、ビールでした！
開発合宿を始めて、最初の年末ということで、合宿終了後ついつい乾杯してしまいました(笑)
今年の反省と来年の抱負を語りながら飲むビールは格別です！！
それではまた、2020年の開発合宿の記事をお楽しみに♪
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482024/5815f731-636c-4b36-4578-234182d54745.jpeg" width=50%>