2017年3月1日 星期三

Tensorflow Windows 安裝出現 Could not find a version that satisfies the requirement tensorflow







遇到問題

  Could not find a version that satisfies the requirement tensorflow (from versi
ons: )
No matching distribution found for tensorflow

代表Python安裝錯了 ,安裝成32bit版本或是 python3.6

把舊的python 移除 重新安裝 64bit版本可以解決這個問題

2016年7月19日 星期二

神經網路應用



RNN好文章
http://blog.csdn.net/heyongluoyao8/article/details/48636251

收斂SIN
http://www.qingpingshan.com/rjbc/vbnet/104135.html

RNN文章
http://cpmarkchang.logdown.com/posts/278457-neural-network-recurrent-neural-network


這幾天使用了基本的神經網路訓練起一些函數,其中想要找出兩條曲線的交叉訊號這樣簡單的動作神經網路卻怎麼樣也訓練不起來,處在於放棄邊緣。

有種這麼簡單的規則你都沒有辦法學習那我還能相信你什麼的[憤怒想法]。

開始尋找一些文章想要知道神經網路的極限在哪裡。

(後來發現憤怒的是自己對於神經網路的不熟悉,慢慢的知道只是知道皮毛tensorflow 架設簡單神經網路是沒有什麼作用的。)

目前知道神經網路需要對於 [問題的性質] 使用不同的架構,

例如對於圖形辨識使用 CNN 捲積神經網路將會有比較好的效果

對於時間訊號有關係的需要使用RNN 的Recurrent  Nural Network 會比較好,

RNN 後來進化到LSTM ( Long Short Term Memory networks) 成為主流

雖然看到文章中後來有更新的論文發表 CW-RNN 可以超越LSTM

單是tensorflow 並沒有太多人提及  CW-RNN ,LSTM則有較多文章 可以參考

開始了解LSTM中。





2016年6月3日 星期五

機器學習、類神經網路、tensorflow

機器學習   

    在現實生活中我們 [假定] 我們關心的事情有一個數學公式,
    當然他可能沒有數學公式又或許是這個公式非常複雜,
    那機器學習就沒有辦法學到東西
    當然我們不可能知道 這個[神之公式]
    我們只能知道一堆資料"輸入"與"輸出"
    例如 這個世界還沒有歐姆定律,
    我們想要知道流過這個電阻上的 電流
    然後我就開始蒐集數據,
    加入電壓量測到電流並記錄下來,
    加入電壓 就是X  測到電流 就是Y
    然後把這些X與Y丟給機器學習學習這些數據,假設機器學習是可以學到這個公式的
    有一天 來了一個電壓 是以前都沒有看過的   
    這時候已經訓練過的機器學習程式,可以預測他[應該]會得到多少電流
   
    電流可能不只與 電壓有關係
    可能跟當時後的溫度,還有當時後的溼度也有關係,
    所以 我就開始 紀錄  電壓 、 溫度 、 濕度 、  電流 、 我當天的心情指數、與環境中的噪音分貝
    然後依樣把這些數據都丟給機器學習
    所以我的輸入 就有  電壓 溫度 濕度 心情 還有 分貝
    如果以統計學來說 這是一個 六個維度的回歸
    複雜度已經有點高

機器學習在這麼高維度的收斂當中 是否數據有用?

    數學家們提出一個見解他們這樣說
    如果這裡有一個罐子 裡面有一堆紅豆綠豆
    那你怎麼估算 這整個罐子的紅豆綠豆比例呢
    統計學來說 就是抓一把 然後開始算
    這樣叫做抽樣
    那抽樣 有可能運氣很差 抽出來都是綠豆
    那我們會說 喔 這瓶沒有紅豆
    很顯然這抽樣出了問題
    數學家們 算出一個公式 這個公式可以告訴你 這樣壞運氣的機率是多少
    結果他們說 如果 你手上的那一把數量[夠大]
    那 你的機率 就會越趨近 整缸的比例
    我們抓起的那一把可以看成就是我們蒐集來的那些數據
    那如果我們蒐集來的數據越多,我們就能越靠近這整體的樣貌(神之公式)
    所以叫做 [ 大 數 據]
    為什麼機器學習 跟大數據 要扯再一起

神經網路跟機器學習又有什麼關係?

    機器學習的論文與方法 多如毛
    但是近年來有一種方法壓倒性的勝利
    就是類神經網路在深度學習的時候 ,可以壓到性的勝利 其他演算法
   

什麼是深度學習?

    深度學習就是類神經網路中間有很多隱藏層
    我們目前的論文都遇到一些困難,就是當層數越多越難訓練
    幾乎無法收斂 神經網路也因為這樣 沉寂了 二十多年
   
    當時候他們提出 卷積神經網路(CNN) 來減少與收斂深層網路
    這些方法於198X年就已經提出了
    但是提完之後 他們就冷了
    因為當時後的科技 無法處理那麼大的運算
    節錄
    Hinton終於一鳴驚人,在《科學》上發表文章,CNN再度覺醒,並取得長足發展。
    2012年,ImageNet大賽上CNN奪冠,2014年,谷歌研發出20層的VGG模型。
    同年,DeepFace、DeepID模型橫空出世,直接將LFW資料庫上的人臉識別、人臉認證的正確率刷到99.75%,幾乎超越人類。
    2015年深度學習領域的三巨頭LeCun、Bengio 、Hinton聯手在Nature上發表綜述對DeepLearning進行科普。
    2016年3月阿爾法狗打敗李世石
    原文連結:https://read01.com/Pg8Rg7.html

    加上 GPU的運算加速CPU運算超過一千倍, 使得這些深度學習變的可行 (GPU速度成長約一年一倍成長)

   

收斂這些神經靠三方法

    1. CNN 卷積神經網路 可以有效地降低神經數量 達到深層數量的效果
    中心原理是說

        a.我們人類觀察一個圖片 是由小細節開始 不是一次看全部
        b.那我們看任何細節使用的都是相同部分的神經
        c.我們看小細節與大全局 也都使用相同部分的神經
        舉例
        假設一張圖為100 * 100
        那我們只使用10 * 10 然後掃描這張圖 90 * 90次
        就像是卷軸移動並累加結果
        所以叫做 捲積
    2. 大量的數據
    3. 高速GPU

所以類神經依賴三個方面


    1.技巧
    2.資料量
    3.運算速度


廠商發展趨勢

    硬體

    http://technews.tw/2016/05/02/artificial-intelligence-now-fits-inside-a-usb-stick/
    一台神級電腦不是每個學校都可以買的起
    廠商發現人工智慧越來越發達 商機無限 出這個
    這個完全為了神經網路 優化的CPU 叫做TPU
    三千元台幣 就可以有神級運算

    軟體


    Google 推出tensorflow 讓運算技巧得以簡單入門
    他是一個 框架 定義  網路架構然後餵資料 就可以自動轉化成 GPU運算 CPU運算 或是 TPU運算
    讓 類神經可以變成是高中的入門課程
    硬體 軟體的趨勢 讓整體的機器學習 幾乎導向類神經網路




種歸來說

   
    他還是一個  輸入資料 與  輸出資料 之間的關係
    並且預測未知的輸入資料 得到 可能的輸出資料   
    這就是整體 運算的核心
    並且自動調整與剃除假設
    例如上方的六維輸入,會自動的把噪音與心情兩維度幾乎對於結果不影響
    是一個很自動的 "回歸"函數
以上

2016年5月16日 星期一

開始安裝

1.安裝Linux
tensorflow 需要linux , 如果你也跟我一樣 跟他不太熟,那就使用windows上安裝VM 然後安裝 Ubuntu 16 以上吧。 原因是這個版本的linux  比較適合初學者。

2.
安裝linux之後需要檢查pyhon版本

安裝 與操作 tensorflow 都需要pyhon , 最好使用新版,(學習tensorflow 就順便學習Python)  , 通常linux 都內建 Python 查詢版本的方式為
終端機( Terminal) 中 打入 Python -- version指令


f這裡我的Pyhon 是舊版的,那就來升級pyhon版本
http://stackoverflow.com/questions/5233536/python-2-7-on-ubuntu
參考網址,範例是升級到3.4

Ubuntu

在你的終端機輸入以下指令:
sudo apt-get install python3.4
 
 
這裡我白癡了一下,原來python 3之後的命令已經改成 python3
所以要查詢3版本的命令為
python3 --version  查到3的版本命令
python -- version  會查到2的版本命令



看起來都是最新版了,接下來我們開始安裝tensorflow吧

安裝之前 還需要PIP ,(這什麼鬼),打下PIP 出現如下文字
































喔,好棒喔還教我怎麼安裝呢,那就給他裝裝看





看來有PIP了

Ubuntu/Linux

# 仅使用 CPU 的版本
$ pip install https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.5.0-cp27-none-linux_x86_64.whl

# 开启 GPU 支持的版本 (安装该版本的前提是已经安装了 CUDA sdk)
$ pip install https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.5.0-cp27-none-linux_x86_64.whl
 
 


CUDA SDK  我大概知道 他是顯示卡加速演算法的東西,只是我不知道我的顯示卡是否支援,今天偷懶就先安裝CPU版本就好了,先來點東西增加一點成就感吧。




裝玩了......然後呢,應該跳出一些煙火,或是來個鼓掌的聲音吧,好吧Linux中 看到Success這個字眼就代表這些吧


$ python

>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print sess.run(hello)
Hello, TensorFlow!
>>> a = tf.constant(10)
>>> b = tf.constant(32)
>>> print sess.run(a+b)
42
>>>
 
進入python 打入這些,藍色的就是輸出,可以運作 代表tensorflow 可以動了。
喔喔喔喔喔喔喔喔喔喔  好像真有點這回事了。
 
 
原來不用python3 用 python 2就可以了阿。
 
好吧 有一點很重要',離開python環境要打
exit()