近期因使用TensorFlow object detection API進行開發,而目前嘗試使用PASCAL VOC2007+2012進行訓練以及驗證,需要將PASCAL VOC2007+2012製作成TF Records的型態,再使用TensorFlow中的API進行訓練以及測試,以下紀錄如何使用TensorFlow object detection API製作出PASCAL VOC的TF Records,下一篇會詳細解說如何進行訓練。
一、下載PASCAL VOC 2007 + 2012資料集:
PASCAL VOC 2007網站: http://host.robots.ox.ac.uk/pascal/VOC/voc2007/index.html
1.訓練集: http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar
2.測試集: http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar
水面上的小草 發表在
痞客邦
留言(0)
人氣()
當多人使用同一台伺服器進行開發時,若有人正在使用TensorFlow進行GPU運算且沒有加入以下指令時,會把GPU的內存直接暫滿,導致其他人無法使用,此處紀錄如何限制使用量以及如何查詢使用狀況。
一、在Python或Jupyter上限制TensorFlow使用GPU暫存數量:
1.使用自訂數量的暫存大小:
cfg = tf.ConfigProto()
cfg.gpu_options.per_process_gpu_memory_fraction = 0.5 # 使用50%的GPU暫存
水面上的小草 發表在
痞客邦
留言(0)
人氣()
有時候要使用Python進行編譯時,因為Python2以及3版本內的套件有所不同,因此有時需要進行版本的切換,此處紀錄如何在Linux的環境下進行各版本的設定以及切換。
輸入以下指令可以查看目前環境下預設的Python版本。
python -V
輸入以下指令可以查看各python版本的存放路徑。
--------------------------------------------------------------------------
水面上的小草 發表在
痞客邦
留言(0)
人氣()
會造成此錯誤應該是pip中的檔案受到一些損壞,因此透過手動安裝進行更新即可修復此問題,詳細的操作步驟如以下所示。
至以下網站連結進行下載,下載的內容依下圖所示,點選setuptools-41.0.0.zip(未來可能會繼續更新,因此下載該名稱格式之最新檔案)。
網站連結: https://pypi.org/project/setuptools/#files
檔案下載完成後將該檔案進行解壓縮,可以得到下圖所示之檔案。
進入該setuptools-41.0.0資料夾中,並輸入以下指令進行安裝,如下圖所示。
水面上的小草 發表在
痞客邦
留言(0)
人氣()
使用某些套件或是API進行實現時,有時候需要使用Bazel進行建置,本文因使用Tensorflow的相關API (Graph transform)會使用到Bazel進行建置,因此記錄安裝的詳細步驟。
網址:https://docs.bazel.build/versions/master/install-ubuntu.html#install-with-installer-ubuntu
Step 1: 安裝所需套件,包含:pkg-config、zip、g++、zliblg-dev、unzip以及python。
sudo apt-get install pkg-config zip g++ zlib1g-dev unzip python
下圖因權限為root,因此指令沒有加sudo,輸入後如下圖最後一行需要再輸入y。
水面上的小草 發表在
痞客邦
留言(0)
人氣()
該題Move Zeros的題目如下所示,輸入為一個陣列,要將該陣列中所有為0的元素移動至最後面進行存放,如範例1所示,輸入為0、1、0、3、12,則移動後之輸出為1、3、12、0、0。
Example:
Input: [0,1,0,3,12]
Output: [1,3,12,0,0]
作法解析:使用Two pointer進行實現,將兩個雙指標索引放在起始的位置,並利用其中一個指標進行偵測,若遇到0則向右移一格,若不是則將兩個指標索引之值進行互換。
水面上的小草 發表在
痞客邦
留言(0)
人氣()
該題Reverse String要將輸入字串進行反轉,如下所示,範例1的字串內容為hello,反轉之後的結果為olleh,範例2為Hannah,反轉後為hannaH,此題有許多寫法,而利用two pointers的解法可以得到很好的效能。
Example 1:
Input: ["h","e","l","l","o"]
Output: ["o","l","l","e","h"]
水面上的小草 發表在
痞客邦
留言(1)
人氣()
該題Jewels and Stones的題目如下所示,想要從S矩陣中找出有幾個J矩陣的元素,範例1中,有一個J矩陣中有a以及A的元素,在給定一個S矩陣,該例子中,S矩陣中共有1個a以及2個A,因此輸出為3,範例2中,J矩陣的元素為z,而S矩陣的元素為Z,S矩陣中完全沒有包含J矩陣的元素,因此輸出為0。
Example 1:
Input: J = "aA", S = "aAAbbbb"
Output: 3
水面上的小草 發表在
痞客邦
留言(0)
人氣()
該題Linked List Components的題目如下所示,要計算出共有幾段鏈結串列,範例1的鏈結串列有四個節點,分別為1至4,若有一個陣列G的元素為0、1、3,等於將鏈結串列從元素2的地方切開,切開後鏈結串列為2段,所以輸出為2,而範例2可以看到陣列G一樣少了元素2,因此,輸出結果也為2。
Example 1:
Input:
head: 0->1->2->3
G = [0, 1, 3]
水面上的小草 發表在
痞客邦
留言(0)
人氣()
該題Reverse Linked List的題目如下所示,原來有一連結串列有五個節點,節點分別存放1至5的數值,現在要將五個節點進行反轉,反轉後,節點存放的值分別為5至1。
Example:
Input: 1->2->3->4->5->NULL
Output: 5->4->3->2->1->NULL
作法解析:宣告一個空的鏈結串列以及一個暫存鏈結串列,先將要原始鏈結串列進行暫存,並將當下的節點連結至空鏈結串列,在利用暫存的鏈結串列進行上述動作。
水面上的小草 發表在
痞客邦
留言(1)
人氣()
該題Leetcode Middle of the Linked List為實現得到一半以後的鏈結串列,如以下所示,範例1共有5個鏈結串列節點(1、2、3、4、5),要取得中間以後的數量為3個,即輸出3、4、5,而範例2共有6個鏈結串列節點(1、2、3、4、5、6),要取得中間以後的數量為3個,即輸出4、5、6。
Example 1:
Input: [1,2,3,4,5]
Output: Node 3 from this list (Serialization: [3,4,5])
The returned node has value 3. (The judge's serialization of this node is [3,4,5]).
水面上的小草 發表在
痞客邦
留言(0)
人氣()
本題Leetcode需進行鏈結串列刪除節點之實現,如下圖所示,該鏈結串列共有4個節點為4、5、1、9,在例子1中,若刪除節點為5,則需刪除節點5,因此鏈結串列為4、1、9,若刪除節點為1,則鏈結串列為4、5、9。
Example 1:
Input: head = [4,5,1,9], node = 5
Output: [4,1,9]
Explanation: You are given the second node with value 5, the linked list should become 4 -> 1 -> 9 after calling your function.
水面上的小草 發表在
痞客邦
留言(0)
人氣()