ぽきたに 〜ありきたりな非凡〜

日々の独り言とちょっとした発信

【Python】WAVファイルを等間隔に分割するプログラム【サウンドプログラミング】

どうもこんにちは。たっきーです。

もうすっかり寒くなって暖房なしの氷河期部屋じゃ息ができませんね。。。

 

 

なにする?

タイトル通り、WAVファイルを等間隔で分割するプログラムをPythonで書く。

↓一秒に切り取ったWAVファイル。

f:id:tacky0612:20171121155747p:plain
piano/1.wav

 

モチベーション

機械学習用にデータセットを用意したい。

機械学習用のデータ[行列(配列?)]はデータの個数が等しくしなちゃめんどくさいので等間隔に切り取りたい。

Audacityを使って手作業で切り取るのもちょっと考えたけど、等間隔に切り取る作業初めて3秒で飽きた。

ちょっと人間には厳しいので、Pythonにやらせる。

つまり、自動化して楽したい。

 

環境

  • numpy 1.13.3
  • scipy 0.19-.1

 

コード

 

import wave
import struct
import math
import os
from scipy import fromstring, int16

# 一応既に同じ名前のディレクトリがないか確認。
file = os.path.exists("output")
print(file)

if file == False:
    #保存先のディレクトリの作成
    os.mkdir("output")

def cut_wav(filename,time):  # WAVファイルを刈り奪る 形をしてるだろ? 
    # timeの単位は[sec]

    # ファイルを読み出し
    wavf = filename + '.wav'
    wr = wave.open(wavf, 'r')

    # waveファイルが持つ性質を取得
    ch = wr.getnchannels()
    width = wr.getsampwidth()
    fr = wr.getframerate()
    fn = wr.getnframes()
    total_time = 1.0 * fn / fr
    integer = math.floor(total_time) # 小数点以下切り捨て
    t = int(time)  # 秒数[sec]
    frames = int(ch * fr * t)
    num_cut = int(integer//t)

    # 確認用
    print("Channel: ", ch)
    print("Sample width: ", width)
    print("Frame Rate: ", fr)
    print("Frame num: ", fn)
    print("Params: ", wr.getparams())
    print("Total time: ", total_time)
    print("Total time(integer)",integer)
    print("Time: ", t) 
    print("Frames: ", frames) 
    print("Number of cut: ",num_cut)

    # waveの実データを取得し、数値化
    data = wr.readframes(wr.getnframes())
    wr.close()
    X = fromstring(data, dtype=int16)
    print(X)


    for i in range(num_cut):
        print(i)
        # 出力データを生成
        outf = 'output/' + str(i) + '.wav' 
        start_cut = i*frames
        end_cut = i*frames + frames
        print(start_cut)
        print(end_cut)
        Y = X[start_cut:end_cut]
        outd = struct.pack("h" * len(Y), *Y)

        # 書き出し
        ww = wave.open(outf, 'w')
        ww.setnchannels(ch)
        ww.setsampwidth(width)
        ww.setframerate(fr)
        ww.writeframes(outd)
        ww.close()

print("input filename = ")
f_name = input()
print("cut time = ")
cut_time = input()
cut_wav(f_name,cut_time)

 

実行すると同じディレクトリ内にoutputというディレクトリが作成され、カットしたいファイル名とカットしたい時間[sec]の入力を求められるので入力してください。

※ファイル名に.wavの記入は必要ありません。

※カットしたいWAVファイルと同じ階層にこの.pyファイルを書く必要有り

 

↓一秒で等間隔にカットした結果。

f:id:tacky0612:20171121162539p:plain

 

f:id:tacky0612:20171121162550p:plain

上手く動いた✌

 

 

参考

qiita.com

yukara-13.hatenablog.com

 

退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング

退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング

 

 

 

入門 Python 3

入門 Python 3

 

 

 

おわりに・感想 

手作業でAudacityを使うと20分割するだけで10分ぐらいかかってたけど、これなら1分とかからず済むので強い💪

機械学習用データセット作り頑張るぞい。

print文は確認用なので消したほうがスッキリするぞい。 

tacky0612.hatenablog.com

MNISTはどういったデータの構造をしているのかについて考える。

 

どうもたっきーです。

最近、研究のモチベーションは高いけど大学に行くモチベーションはとても低い。

 

モチベーション

f:id:tacky0612:20171108182809p:plain

機械学習初心者なので、MNISTの784次元配列+ラベルのデータセットを分類したい対象のN次元配列+ラベルのデータセットに入れ替えると既存のコードで機械学習が簡単にできる。。。等と安直な考えでいる。

そのためにはMNISTってどんなデータの形しているのかしる必要があるので検証してみる。

 

環境 

  • macOS High Sierra 10.13
  • Python 3.6.3
  • Jupyter notebook 5.0.0
  • numpy 1.13.3
  • tensorflow 1.4.0

  

準備

まずはインポート

import tensorflow as tf
import numpy as np
from tensorflow.examples.tutorials.mnist import input_data

MNISTデータを取得する。

mnist = input_data.read_data_sets("/tmp/data/", one_hot=True)

すると以下が表示される。

 データの内容を表にまとめると以下になる。

ファイル名 データ
train-images-idx3-ubyte.gz 学習用画像データ
train-labels-idx1-ubyte.gz 学習用ラベルデータ
t10k-images-idx3-ubyte.gz テスト用画像データ
t10k-labels-idx1-ubyte.gz テスト用ラベルデータ

 

中身を見ていく

a = mnist.train.next_batch(1)

 mnist.train.next_batch()で学習用データからデータを取り出すメソッド。

引数は取り出すデータの数。

>>>print(a)

 
 
 
(array( 0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.40000004,  0.99607849,
         0.92156869,  0.29411766,  0.08235294,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.54509807,  0.99215692,  0.99215692,  0.99215692,
         0.88627458,  0.47058827,  0.03137255,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.45098042,
         0.99215692,  0.99215692,  0.99215692,  0.99215692,  0.99215692,
         0.89803928,  0.43137258,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.02352941,  0.13725491,  0.13333334,
         0.13333334,  0.62352943,  0.98039222,  0.99215692,  0.89411771,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.57254905,  0.99215692,  0.89411771,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.32156864,  0.88235301,  0.99215692,
         0.89411771,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.06666667,  0.49803925,
         0.89411771,  0.99215692,  0.90196085,  0.44313729,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.11764707,  0.21960786,
         0.54509807,  0.9450981 ,  0.99215692,  0.95686281,  0.65882355,
         0.32549021,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.1137255 ,
         0.72549021,  0.92941183,  0.99215692,  0.99215692,  0.99215692,
         0.99215692,  0.69411767,  0.37254903,  0.1254902 ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.2392157 ,  0.97647065,  0.99215692,
         0.99215692,  0.99215692,  0.99215692,  0.99215692,  0.99215692,
         0.99215692,  0.98431379,  0.94117653,  0.4666667 ,  0.01568628,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.37647063,  0.58039218,  0.58039218,  0.58039218,
         0.58039218,  0.89803928,  0.97254908,  0.98431379,  0.99215692,
         0.99215692,  0.99215692,  0.5529412 ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.16862746,  0.5411765 ,  0.99607849,  0.99215692,
         0.8588236 ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.02745098,
         0.75294125,  0.99215692,  0.99215692,  0.65490198,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.06666667,  0.47450984,  0.99215692,  0.99215692,
         0.80000007,  0.05490196,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.09019608,  0.76078439,
         0.99215692,  0.99215692,  0.67450982,  0.03529412,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.53725493,  0.93725497,  0.99215692,  0.99215692,  0.67450982,
         0.03529412,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.64313728,  0.29019609,  0.        ,
         0.04705883,  0.20000002,  0.82745105,  0.99215692,  0.99215692,
         0.81568635,  0.29019609,  0.02745098,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.09411766,
         0.90980399,  0.5529412 ,  0.40000004,  0.82745105,  0.99215692,
         0.99215692,  0.99215692,  0.83921576,  0.09411766,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.25490198,  0.99607849,  0.99215692,
         0.99215692,  0.99215692,  0.96470594,  0.81568635,  0.35686275,
         0.02352941,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.25490198,  0.99215692,  0.99215692,  0.99215692,  0.57647061,
         0.18039216,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        , dtype=float32), array( 0.,  0.,  0.,  1.,  0.,  0.,  0.,  0.,  0.,  0.))

 

>>>print(type(a))
<class 'tuple'>

 これから取り出したデータの方はタプルで、a[0]に画像データ、a[1]にラベルデータが入っていることが分かる。

 

試しに print(a[0])をやってみると784個の配列が表示され、print(a[1])をやってみると10個の配列が表示される。

じゃあこれらのデータの型は?

>>>print(type(a[0]))
<class 'numpy.ndarray'>

>>>print(type(a[1]))

<class 'numpy.ndarray'>

numpy.ndarrayらしい。

↓ドキュメント

numpy.ndarray — NumPy v1.13 Manual

要するにNumpyの配列ってことかな??(わからん)

 

ちなみに画像データは0〜1の値をとり、0が白、1が黒になっている。

オリジナルのデータは0〜255の整数値で各ピクセルの濃度を表しているっぽい。

0〜1に変換して正規化しているっぽい(?)

 

ラベルデータは 「1-of-K」という方式で表現しているらしい。

例えば0なら[1,0,0,0,0,0,0,0,0,0]で、

2なら[0,0,1,0,0,0,0,0,0,0]と言った風のある要素だけが1で、それ以外が0なベクトルのこと。

配列の個数が分類したいデータの個数で、1のある位置がその要素。(語彙がないのでうまい表現が見つからない。)

 

画像データとラベルデータを分ける

以下のコードでimagesに画像データの配列、labelsにラベルデータの配列が入る。 とりあえず10個分のデータ入れてみる。

images, labels = mnist.train.next_batch(10)

 中身の確認をしよう。

 

images

IN

print(images)

OUT

[[ 0.  0.  0. ...,  0.  0.  0.]
 [ 0.  0.  0. ...,  0.  0.  0.]
 [ 0.  0.  0. ...,  0.  0.  0.]
 ..., 
 [ 0.  0.  0. ...,  0.  0.  0.]
 [ 0.  0.  0. ...,  0.  0.  0.]
 [ 0.  0.  0. ...,  0.  0.  0.]]

IN

print(len(images))

OUT

10 

IN

print(type(images))

OUT

<class 'numpy.ndarray'>

 

 

ほう…imagesには784個のデータの配列が10個配列としてあって、型はnumpy.ndarrayって感じかな。

もっと深く見てみよう。

 

images[0]

IN

print(images[0])

OUT

[ 0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.00392157  0.33333334
  0.60784316  1.          0.63921571  0.53333336  0.53333336  0.08235294
  0.03137255  0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.05882353
  0.59215689  0.99215692  0.99215692  0.99215692  0.99215692  0.99215692
  0.99215692  0.99215692  0.76470596  0.51764709  0.03921569  0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.51372552  0.99215692  0.97254908  0.70980394  0.32156864  0.32156864
  0.49803925  0.87843144  0.99215692  0.99215692  0.99215692  0.58823532
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.26274511  0.96470594  0.98823535  0.43529415  0.          0.
  0.          0.          0.44313729  0.99215692  0.99215692  0.99215692
  0.73725492  0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.50980395  0.99215692  0.80784321  0.          0.
  0.          0.          0.30588236  0.89411771  0.99215692  0.99215692
  0.92941183  0.26666668  0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.44705886  0.97254908  0.99215692  0.09411766
  0.          0.          0.          0.          0.56470591  0.99215692
  0.99215692  0.99215692  0.61176473  0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.74117649  0.99215692
  0.98431379  0.04313726  0.01568628  0.10196079  0.49019611  0.84313732
  0.98823535  0.99215692  0.99215692  0.92549026  0.17647059  0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.
  0.74117649  0.99215692  0.80784321  0.1254902   0.80000007  0.99215692
  0.99215692  0.99215692  0.99215692  0.99215692  0.96862751  0.18431373
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.74117649  0.99215692  0.99215692  0.99215692
  0.99215692  0.99215692  0.87843144  0.87843144  0.99215692  0.99215692
  0.57647061  0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.35686275  0.76078439
  0.8705883   0.76078439  0.71764708  0.29803923  0.09019608  0.627451
  0.99215692  0.99215692  0.01960784  0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.10980393  0.          0.          0.          0.18039216
  0.94117653  0.99215692  0.50980395  0.00784314  0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.0627451
  0.73333335  0.99215692  0.68235296  0.01568628  0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.
  0.16470589  0.99215692  0.99215692  0.41960788  0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.
  0.07058824  0.80784321  0.99215692  0.81568635  0.07843138  0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.
  0.00392157  0.60784316  0.99215692  0.96470594  0.20392159  0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.41568631  0.99215692  0.99215692  0.45882356  0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.
  0.30588236  0.98039222  0.99215692  0.87450987  0.08235294  0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.
  0.11764707  0.82352948  0.99215692  0.96470594  0.34509805  0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.0509804   0.89803928  0.99215692  0.93725497  0.14901961  0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.25490198  0.97254908  0.6901961   0.02745098  0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.        ]​

IN

print(len(images[0]))

OUT

784

IN

print(type(images[0]))

OUT

<class 'numpy.ndarray'>

 

これからimagesに格納されている各配列はひとつ分の画像データに鳴っていることが分かる。型は<class 'numpy.ndarray'>。

もっと深く。

images[0][0]

IN

print(images[0][0])

OUT

0.0

IN

print(len(images[0][0]))

OUT

TypeError: object of type 'numpy.float32' has no len()

IN

print(type(images[0][0]))

OUT

<class 'numpy.float32'>

これから、imagesの配列になにが入ってるかわかった。型はnumpy.float32。

そりゃ、print(len(images[0][0]))はデータは配列じゃないのにエラー吐かれるわ。

 

ラベルデータに対しても似たような結果が得られた。

ただ、print(type(labels[0][0]))関してだけ、型が<class 'numpy.float64'>だった。

 

 

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

 

 

 

Python機械学習プログラミング 達人データサイエンティストによる理論と実践 (impress top gear)

Python機械学習プログラミング 達人データサイエンティストによる理論と実践 (impress top gear)

 

 

 

TensorFlowで学ぶディープラーニング入門 ~畳み込みニューラルネットワーク徹底解説~

TensorFlowで学ぶディープラーニング入門 ~畳み込みニューラルネットワーク徹底解説~

 

 

 

 

おわりに・今後・感想

今回得た配列を分類したいやつの配列に入れ替えるとどうなるのか試してみる。

このデータセットみたいに0〜1に正規化する必要があるのかな??

まぁ、そのデータセットどうやって作ろうかな…って感じではある。

(データセットってどうやってつくるのか…?)

numpy.ndarrayに分類対象の配列を入れたらいいのかな???

そしてそれに1-of-Kでラベルデータを付与すれば良い?

とりあえずMNISTライクなデータセット用意するところから始めたらいいのかな???

そもそも機械学習・深層学習はどの程度データがあればいいんや????

 

???ばかりが頭に浮かぶ

機械学習畑の方、ぜひご教授ください…。

 

そういや関係ないけど、iPhone X発売されましたね。

ほしい。

 

Anacondaのアンインストール&インストール + Python2系/3系の両方をJupyter-Netebookで使えるようにする

どうも、たっきーです。最近よくものを壊します。

この前は誤ってバイト先の金庫を破壊しました。

 

 

 

モチベーション

Anaconda-NavigatorがHigh-Sierraにアップデートしてから起動しなくなった。

パソコンが何もしてないのに壊れた キレそう。

…ので、Anacondaをアンインストール→インストールする。

あと、Python2系とPython3系の両方使いたくなった。(Python2で動くのにPython3では動かないみたいなことがよくあるのでそれの原因を特定したい。)

まぁ色々いじりすぎてごちゃごちゃしてたのできれいに掃除できたいい機会になった。

ちょっと躓いたので議事録。

 

環境

macOS High Sierra 10.13

f:id:tacky0612:20171106154318p:plain

 

Anacondaアンインストール

ai-coordinator.jp

↑これのとおりにやった。

コマンド叩くだけじゃホームディレクトリにAnacondaファイルが残るので削除を忘れない。

$ conda install anaconda-clean

$ anaconda-clean

これだけだとまだ残ってるので、Finderで /Users/HOME/anaconda を全消しする。

$ open ~/.bash_profile

 

# added by Anaconda3 4.3.1 installer
export PATH="/Users/hideki/anaconda/bin:$PATH"

と書かれてあるので消す。

$ python

と叩いてAnacondaが起動してなかったらアンインストール完了。

Anacondaインストール

↓ここから自分のOSにあったやつを入れる。Python3。

www.anaconda.com

 

次へ→次へ→次へ→次へ→完了

これでPython3環境はいった(はず)

 

好みで他に必要なもの入れる(これはメモ)

Anacondaをアンインストールしたときにほとんど消えた。

Anaconda入れると大体入るけど他に好みでインストールする。

$ pip install wavio

$ pip install tensorflow

 

仮想環境構築

仮想環境作るコマンド

oppython2の部分は仮想環境名。

普通にpython2とかの方がいい。(おっPython)

$ conda create -n oppython2 python=2.7 anaconda

仮想環境に入るコマンド

$ source activate oppython2

ターミナルのユーザー名の前に(仮想環境名)と表示されてれば成功。

必要なものはこの仮想環境に入ってからpipなりcondaなりで入れる。

 

Jupiterの起動コマンド

$ jupyter notebook

仮想環境下でこのコマンド叩くとPython2になってる。

f:id:tacky0612:20171106163448p:plain

 

ちなみに仮想環境入らずに$ jupyter notebook叩くとPython3になっている。

f:id:tacky0612:20171106161952p:plain

仮想環境を抜けるコマンド

$ source deactivate

 

 ちなみにAnaconda-Navigatorで仮想環境とかrootに何が入ってるか確認できる。

f:id:tacky0612:20171106163641p:plain

 

 

Python機械学習プログラミング 達人データサイエンティストによる理論と実践 (impress top gear)

Python機械学習プログラミング 達人データサイエンティストによる理論と実践 (impress top gear)

 

 

 

 

 

今後とか感想とか

2系3系両方使える様になったので、2系で動くのに3系で動かないプログラムの解明したい。

研究の進捗生み出したいけど、中々こういうところで躓いて進めねーのクソ^^

がんばう💪

 

 

 

 

スポンサードリンク