發表文章

目前顯示的是 6月, 2019的文章

VBA EXCEL 工作表變化 馬上執行 的作法 Worksheet_Change

圖片
沒想到還會用到 Excel 中的 VBA,當初寫VBA就是一段窮極無聊的日子,用Excel寫星象表… 現在居然要幫一位老大哥寫這樣的程式…當真所有的事,當下是很難知道它發生的意義是什麼… 癈話不多說 先開啟EXCEL,存成副檔名為xlsm,這樣可以使用巨集功能。 然後看一上面,標籤列,有無開發人員選項。 如果沒有,從 檔案->選項->自定功能區->開發人員(打勾) 如果有,點擊 visual basic,就可以開始寫VBA 我們的目的是這樣的,如果 worksheet中有任何的更動,都會執行一段程式。 所以我們先點擊左邊的工作表1,然後右邊的程式編輯欄中上面的選擇列中,選worksheet。要記得這個設定是 對應到個別的worksheet ,所以如果有其它工作表,要個別寫對應的程式。如下 接下來選右邊的change 選完就會自動產生兩個程式名。 Worksheet_Change與 Worksheet_SelectionChange,如下。Worksheet_Change是指任何在worksheet 上的變動,就會執行這個程式。Worksheet_SelectionChange是指,選定EXCEL中的格有變化,如本來選A1改點擊了B1,這個動作就會觸發Worksheet_SelectionChange。 我們在兩個程式中寫一個MsgBox, 如下 各位可以試試效果如何。只要點擊左上方,excel的小圖,就會回到excel的worksheet中。 我們在 Worksheet_Change中增加三行程式,會在A1, A2, A3格中填入a, b, c。 各位是否有推論,這樣的寫法,會產生無窮迴圈? 這個很重要!在寫 Worksheet_Change程式時,要很小心,如果是 工作表1自己的 Worksheet_Change要對工作表1自己做改變,就會進入無窮迴圈。 所以我們要能自由的開關觸發功能。用   Application.EnableEvents  我們加入  Application.EnableEvents ,再試試看。  如此這般。

Minst 手寫訓練集 python

圖片
以往我們有一個新的類神經訓練模型,我們都會用single pole或是double pole來測試模型的訓練結果。以目前類神經網路發展的狀況,single pole 與double pole已不能滿足需求。進一步,我們會使用MNIST訓練集來訓練。網址在此 http://yann.lecun.com/exdb/mnist/ 一進去我們就看到三個作者 Yann LeCun, Corinna Cortes, Christopher J.C. Burges,我們向他們致敬。 然後就是四個重要的檔案。 train-images-idx3-ubyte.gz :  training set images (9912422 bytes) train-labels-idx1-ubyte.gz :  training set labels (28881 bytes) t10k-images-idx3-ubyte.gz :   test set images (1648877 bytes) t10k-labels-idx1-ubyte.gz :   test set labels (4542 bytes) 第一跟第二個是拿來訓練用的,第三跟第四個是拿來測試的。我們可以注意到有image跟labels兩種檔。image是圖檔,labels是對應圖檔的答案。 雖然TensorFlow有方便的讀取方法。但如果我們想要自己用python讀來用。要如何做呢? 我們要先看一下網頁中的這部份 我們可以看到offset,代表讀的byte數。就是說我們開了檔之後。read進來,以label檔來說,data[0:4]會等於2049。data[4:8]等於60000。 了解檔案的格式,我們就可以寫一個小程式來讀讀看。 因為offset是4個為一個單位,所以我們先寫一下轉byte為數字的程式 def b2i(b):     return int(codecs.encode(b, 'hex'), 16) with open("."+os.sep+"train-images.idx3-ubyte", 'rb') as f:     data = f.read()     ty