學(xué)習(xí)TensorFlow確實(shí)是因?yàn)楣ぷ餍枰?,是為了分析單?xì)胞測(cè)序的數(shù)據(jù)。
TensorFlow(以下簡(jiǎn)稱為tf)是一個(gè)AI的編程框架,有自己的設(shè)計(jì)理念,必須理解這個(gè)理念才能靈活調(diào)用其API來(lái)開(kāi)發(fā)AI模型。
接下來(lái)說(shuō)一下tf的設(shè)計(jì)理念:
1. 圖。
? ? 可以看到黑色箭頭在流動(dòng),流動(dòng)的就是tensor,也就是數(shù)據(jù)。仔細(xì)觀察,箭頭經(jīng)過(guò)的節(jié)點(diǎn)就是對(duì)數(shù)據(jù)的操作,輸入數(shù)據(jù)經(jīng)過(guò)某個(gè)操作后,繼續(xù)往下流。這張圖片很好解釋了TensorFlow名字的內(nèi)涵。計(jì)算機(jī)程序=數(shù)據(jù)+算法。tf框架正是采用了圖(graph)的概念將復(fù)雜的數(shù)據(jù)流動(dòng)抽象管理起來(lái)。圖相當(dāng)于AI模型的藍(lán)圖,包含所有設(shè)計(jì)邏輯。在tf圖里,可以對(duì)變量進(jìn)行管理,可以添加對(duì)變量的操作。tf可以聲明常量(tf.constant)、變量(tf.Variable)和占位量(tf.placeholder)。區(qū)別于常量,變量和占位量值都可以改變。變量在聲明的時(shí)候需要有初始值,而占位量可以在運(yùn)行時(shí)傳入值。學(xué)過(guò)c++等語(yǔ)言的應(yīng)該很容易理解tf.placeholder,也就是需要提前給定變量的形狀(如大小和類型)。有了變量,就一定有變量作用域,tf通過(guò)tf.name_score()等函數(shù)來(lái)管理變量作用域。
2. 執(zhí)行運(yùn)算。
有了圖之后,tf通過(guò)創(chuàng)建會(huì)話(session)來(lái)執(zhí)行圖。
這是學(xué)習(xí)tf的第二天,一些心得,有不對(duì)之處,請(qǐng)大家多方確認(rèn)。