ハードウェア技術者のスキルアップ日誌

某家電メーカーの技術者がスキルアップのために勉強したことを記録するブログです

AidemyでDeep Learningの勉強を始めてみたーPython入門

巷で話題のDeep Learningを勉強しています。

書籍を読んでみたり、数日間の社内研修を受講したりしているのですが、理論的な説明ばかりで、具体的にDeep Learningを使うにはどうするのかがイマイチわかっていません。

そのような状況でどうすればいいのか調べてみたところ、Aidemyというサービスがあることがわかりました。

aidemy.net

Deep Learningを動かすための環境構築は一切不要、ユーザー登録すれば10秒で始められるという謳い文句です。

Python入門など基本的なものから画像認識、時系列解析などAIに関する分野の講座が多数用意されており、実際にコードを書きながら問題を解いていくという、実践的な内容になっています。

講座は有料ですが、一部無料で受けられるものもあり、まずPython入門を受講してみました。

以下は講座を通して新たに学んだことをまとめていきます。

---------------------------------------------------------------------

●文字列
  '(シングルクォーテーション)、または"(ダブルクォーテーション)で囲む

●文字列の連結
  str型 + str型

●型の変換
  str() : 文字列に変換
  int() :整数値に変換 
  float() : 小数点を含む数値型に変換

●if文
  if 条件式 :
  elif 条件式:
  else:

●while文
  while 条件式:
  条件式がTrueの場合に行われる処理

●for文
  for 変数 in リスト:
   *ループを途中で止めたい場合はbreak
   *処理をスキップしたい場合continue

●リスト(list)型 配列
  [要素1, 要素2, ...]
   多次元のリストも可能
   先頭要素のインデックスは0 進むごとに1増える
   一番最後のインデックスは-1  戻るごとに1減る

  ■リストから一部の要素を取り出す(スライス)
    リスト[1:4] *1の要素は含む、4の要素は含まない(1,2,3)

  ■リストの末尾に要素を追加
    リスト名.append(追加する要素) *一つの要素しか追加できない
     複数の要素を追加したい場合は+を使って連結させる

alphabet = ["a", "b", "c", "d", "e"]
alphabet += ["f","g"]

  ■要素の削除
    del リスト[インデックス]

  【Note】
   リストの値を代入し、その値を上書きした場合、元の値も変更が適用される
   変更されないようにするには値を代入する際に以下のようにする

alphabet_copy = alphabet [:]
#または  alphabet_copy = list(alphabet)

  ■リストのインデックスを取得
    enumerate(リスト)

●辞書型
  {キー1: バリュー1, キー2: バリュー2, ...}
  ■辞書型の変数から要素を取得する
    辞書名["キー"]

  ■辞書のバリューを別の値で上書き
    辞書名["上書きしたい要素のキー"] = 新しいバリュー

  ■辞書の要素を削除
    del 辞書名["削除したいキー"]

●メソッド
  値.メソッド()  *特定の値に対して処理を行う
   【メソッドの例】
     append  リストの最後に値を追加
     upper   入力した文字列をすべて大文字に
     count   文字列の中に含まれる指定した要素の個数
       例:count("o")  oが何個含まれるか
     format   文字列の{0}の部分に変数xを埋め込む
       例:print("私は{1}生まれ、{0}育ち、{1}在住".format("東京", "埼玉"))
         # 「私は埼玉生まれ、東京育ち、埼玉在住」と出力される
     index    目的のオブジェクトがどのインデックス番号にあるかを探す
       例:alphabet.index("a") aがindex何番目か
     sort    リスト内の値を小さい順にソート
     reverse   リストの要素の順番を反対

●関数の作り方
  def 関数名(引数):
  return 戻り値

●パッケージ、サブパッケージ、モジュールのimport
  入れ子関係 パッケージ>サブパッケージ>モジュール

 f:id:masashi_k:20190120225155p:plain

  ■インポートしたパッケージ内のメソッドを使用する場合
    import パッケージ名.サブパッケージ名.メソッド名

  ■メソッド呼び出しの際にパッケージ、サブパッケージ名を省略したimport法
    from パッケージ名.サブパッケージ名 import メソッド名

●クラス

 f:id:masashi_k:20190120225930p:plain

  ①コンストラクタ  インスタンス(実体)生成時に一度だけ呼び出される
     __init__()
  ②メソッド     クラス内に定義された関数

def method(self, 引数2,引数3, …): 
    self.name = name
    return name


  ③メンバ      クラス内で使用する変数

class MyProduct: #クラスを定義
  def __init__(self, name, price): # コンストラクタを定義
  self.name = name # 引数をメンバに格納
  self.price = price
  self.stock = 0
  self.sales = 0

product1 = MyProduct("cake", 500) #インスタンス生成

#インスタンスのメンバ参照
print(product1.name) # product1のnameを出力
cake

print(product1.price) # product1のpriceを出力
500

以下のサイトが詳しい
【Python入門】クラスの使い方やオブジェクト指向の概念を理解しよう | 侍エンジニア塾ブログ | プログラミング入門者向け学習情報サイト

 

 ●クラスの継承
  親クラスに影響を与えず、親クラスの一部を使った新たなクラスを作れる
  super()で親クラスのメソッドを呼び出すことができる

●文字列のフォーマット
  %d : 整数で表示
  %f : 小数で表示
  %.2f : 小数第2位まで表示
  %s : 文字列として表示
    例:print("円周率は%f" % pi)   「#円周率は3.141592」と出力される