cntk深度網(wǎng)絡——從入門到轉(zhuǎn)行一 開始 關(guān)于cntk的編譯和安裝,請參見相關(guān)文檔。此文檔用于cntk 2.0版的python。用于c++接口的有需求再整理資料。
如果你還沒安裝Cntk的運行環(huán)境工具包,那么可以先擇使用預選安裝cntk運行在Azure Notebook的托管環(huán)境。
如果你在你的機器上安裝了cntk,在完成安裝后你可以立即從Python 開始使用cntk(不要忘記激活你的python環(huán)境)。
??>>>?import?cntk ????>>>?cntk.__version__ ????'2.0rc2+' ????>>>?cntk.minus([1,?2,?3],?[4,?5,?6]).eval() ????array([-3.,?-3.,?-3.],?dtype=float32)
以上代碼使用了帶有兩個數(shù)組常量的cntk節(jié)點。每個操作符都有一個eval()方法,該方法可以調(diào)用,該方法使用它的輸入為該節(jié)點運行向前傳遞,并返回向前傳遞的結(jié)果。使用輸入變量。更常見的例子是這樣的:
??>>>?import?numpy?as?np
????>>>?x?=?cntk.input_variable(2)
????>>>?y?=?cntk.input_variable(2)
????>>>?x0?=?np.asarray([[2.,?1.]],?dtype=np.float32)
????>>>?y0?=?np.asarray([[4.,?6.]],?dtype=np.float32)
????>>>?cntk.squared_error(x,?y).eval({x:x0,?y:y0})
????array([?29.],?dtype=float32)在上面的例子中,我們首先設置了兩個帶有形狀(1、2)的輸入變量,然后我們設置了一個帶有這兩個變量作為輸入的squarederror節(jié)點。在eval()方法中,我們可以為這兩個變量設置數(shù)據(jù)的輸入映射。在本例中,我們傳入兩個numpy數(shù)組。平方誤差當然是(2-4)2+(1-6)2=29。
大多數(shù)的數(shù)據(jù)容器,比如參數(shù)、常量、值等等,都實現(xiàn)了asarray()方法,該方法返回一個NumPy接口。
>>>?import?cntk?as?C ????>>>?c?=?C.constant(3,?shape=(2,3)) ????>>>?c.asarray() ????array([[?3.,??3.,??3.], ???????????[?3.,??3.,??3.]],?dtype=float32) ????>>>?np.ones_like(c.asarray()) ????array([[?1.,??1.,??1.], ???????????[?1.,??1.,??1.]],?dtype=float32)
對于具有序列軸的值,asarray()不能工作,它要求形狀是矩形的,并且大多數(shù)時間的序列都有不同的長度。在這種情況下,as序列(var)返回一個NumPy數(shù)組列表,其中每個NumPy數(shù)組都具有var的靜態(tài)軸的形狀。





