導航:首頁 > 版本升級 > idx3ubyte文件解壓

idx3ubyte文件解壓

發布時間:2023-04-30 21:04:36

① 為什麼hinton 的代碼出錯

:G.E. hinton個人主頁上的源代碼,冊局寬是關於06年那篇發表州亮在science上的文章,了解的可以下載一下-GE hinton personal home page on the source code, is on the 2006 thing I read the article published in the science, to understand what can be downloaded
[上傳源碼成為會員下載此文件] [成為VIP會員下載此文件]
文件列表(點擊判斷是否您需要的文件,如果是垃臘絕圾請在下面評價投訴):
train-labels-idx1-ubyte.gz
Autoencoder_Code.tar
t10k-images-idx3-ubyte.gz
t10k-labels-idx1-ubyte.gz
train-images-idx3-ubyte.gz

② 求助tensorflow下遇到cuda compute capability問題

首先需要看你的PC配置是否夠,TF的GPU模式只支持N卡,然後計算能力高於3.0,具體可以查:


安裝教程可以參考:Ubuntu16.04上gtx1080的cuda安裝
July 17 2016
目前tensorflow是一個非常流行的深度學習計算框架,常規硬體及系統的安裝方法官方的doc已經說的很清楚了,但是 因為系統是ubuntu16.04,顯卡是GTX1080,所以不可避免的要折騰起來。在上一篇已經在16.04上安裝好了驅動。接下來其實 重點安裝的是CUDA和cuDNN.
首先說為什麼要安裝CUDA和cuDNN,關於採用GPU計算比CPU有速度有多少提升的benchmark找找就有,這次重點是怎麼讓tensorflow充分用的 上GTX1080能力。具體的就是如何把支持GTX1080的CUDA和cuDNN裝起來,然後讓tensorflow認識我們新裝的CUDA和cuDNN。
首先總體說下安裝步驟:
1 首先要注冊NVIDIA developer的帳號,分別下載CUDA和cuDNN
2 確認准備gcc版本,安裝依賴庫sudo apt-get install freegl
3 安裝CUDA
4 解壓cuDNN
5 clone tensorflow源碼,configure配置
6 編譯安裝
7 最後一哆嗦,測試!
准備工作
在正式開始前,需要做幾個准備工作,主要是大概先看下文檔
cuda FAQ
tensorflow 的安裝文檔
cuda-gpu的支持列表/計算能力/FAQ
cudnn 5.1有多牛
cuda tookit下載頁面
CUDA_Installation_Guide_linux.pdf
cudnn User Guide
文檔看過之後接下來就是實際動手的過程:
1 注冊NVIDIA developer的帳號,分別下載CUDA和cuDNN
1.1 下載CUDA 打開cuda toolkit下載頁面,GTX1080 要用的是CUDA 8。先點擊JOIN,注冊帳號。 完了後,再回到cuda toolkit下載頁面。選擇 linux, x86-64, ubuntu, 16.04, runfile(local)
1.2 下載cuDNN 進入cudnn的下載頁,一堆調查,日誌寫時下載的是[Download cuDNN v5 (May 27, 2016), for CUDA 8.0 RC],點開選linux,不出意外的話這個就是下載地址.
2 確認GCC版本,安裝依賴庫
確認本機gcc版本,16.04默認的是gcc 5,這里安裝需要的最高是gcc 4.9。接下來就安裝配置gcc 4.9.
2.1 安裝gcc 4.9,並修改系統默認為4.9
sudo apt-get install gcc-4.9 gcc-4.9 g++-4.9 g++-4.9
gcc --version
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 10
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30
sudo update-alternatives --set cc /usr/bin/gcc
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30
sudo update-alternatives --set c++ /usr/bin/g++
gcc --version


2.2 一個小依賴
sudo apt-get install freegl


3 安裝CUDA
需要注意的是這個地方有個選擇安裝低版本驅動的地方,選n 大致的安裝流程如下:
3.1 安裝CUDA
chmod +x /cuda_8.0.27_linux.run
./cuda_8.0.27_linux.run

....

Do you accept the previously read EULA?
accept/decline/quit: accept

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 361.62?
(y)es/(n)o/(q)uit: n

Install the CUDA 8.0 Toolkit?
(y)es/(n)o/(q)uit: y

Enter Toolkit Location
[ default is /usr/local/cuda-8.0 ]:

Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y

Install the CUDA 8.0 Samples?
(y)es/(n)o/(q)uit: y

Enter CUDA Samples Location
[ default is /home/h ]: /home/h/Documents/cuda_samples

....3.2 寫入環境變數
vim ~/.bashrc
#添加下面變數
export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}


3.3 安裝好後簡單驗證
a. 進入剛配置時指定的cuda sample所在文件夾,NVIDIA_CUDA-8.0_Samples/
b. cd 0_Simple/asyncAPI;sudo make
c. NVIDIA_CUDA-8.0_Samples/0_Simple/asyncAPI$ ./asyncAPI [./asyncAPI] - Starting… GPU Device 0: 「GeForce GTX 1080」 with compute capability 6.1 CUDA device [GeForce GTX 1080] time spent executing by the GPU: 10.94 time spent by CPU in CUDA calls: 0.19 CPU executed 50591 iterations while waiting for GPU to finish
4 安裝cuDNN
h@h:~/Downloads$ tar xvzf cudnn-8.0-linux-x64-v5.0-ga.tgz
cuda/include/cudnn.h
cuda/lib64/libcudnn.so
cuda/lib64/libcudnn.so.5
cuda/lib64/libcudnn.so.5.0.5
cuda/lib64/libcudnn_static.a

h@h:~/Downloads$ sudo cp -R cuda/lib64 /usr/local/cuda/lib64
h@h:~/Downloads$ sudo mkdir -p /usr/local/cuda/include
h@h:~/Downloads/cuda$ sudo cp include/cudnn.h /usr/local/cuda/include/
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*5 clone, configure tensorflow
5.1 clone源碼
$ git clone


5.2 configure配置
整個配置流程應該跟下面的基本一樣的
h@h:~/Downloads/tensorflow$ cd ./tensorflow/
h@h:~/Downloads/tensorflow$ ./configure
Please specify the location of python. [Default is /usr/bin/python]:
***Do you wish to build TensorFlow with Google Cloud Platform support? [y/N] N***
No Google Cloud Platform support will be enabled for TensorFlow
***Do you wish to build TensorFlow with GPU support? [y/N] y***
GPU support will be enabled for TensorFlow
Please specify which gcc nvcc should use as the host compiler. [Default is /usr/bin/gcc]:
**Please specify the location where CUDA toolkit is installed. Refer to README.md for more details. [Default is /usr/local/cuda]: /usr/local/cuda-8.0 **

**Please specify the Cudnn version you want to use. [Leave empty to use system default]: 5.0.5**
**Please specify the location where cuDNN 5.0.5 library is installed. Refer to README.md for more details. [Default is /usr/local/cuda-8.0]: /usr/local/cuda**
Please specify a list of comma-separated Cuda compute capabilities you want to build with.
You can find the compute capability of your device at:
**Please note that each additional compute capability significantly increases your build time and binary size.
[Default is: "3.5,5.2"]: 6.1**
Setting up Cuda include
Setting up Cuda lib64
Setting up Cuda bin
Setting up Cuda nvvm
Setting up CUPTI include
Setting up CUPTI lib64
Configuration finished


6 編譯安裝
6.1 編譯工具Bazel安裝配置
先看一眼文檔然後就執行下面的流程:
#安裝java 1.8
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

#安裝好後車參考下
java -version

#添加源
echo "deb [arch=amd64] stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
curl | sudo apt-key add -

#下載
sudo apt-get update && sudo apt-get install bazel

#升級
sudo apt-get upgrade bazel


6.2 編譯tensorflow的pip版本並安裝
$ bazel build -c opt //tensorflow/tools/pip_package:build_pip_package

# To build with GPU support:
$ bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package

$ bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg

# The name of the .whl file will depend on your platform.
#注意編譯完成後生成的文件名字和官方doc裡面的是不一定一致的

$ sudo pip install /tmp/tensorflow_pkg/tensorflow-0.*-linux_x86_64.whl


i6700k 32g編譯時間:

只編譯代碼不帶pip INFO: Elapsed time: 967.271s, Critical Path: 538.38s

bazel-bin/tensorflow/tools/pip_package/build_pip_package INFO: Elapsed time: 65.183s, Critical Path: 48.58
7 最後測試
前面都整完了,現在該測試了,注意前面有兩個動態鏈接庫的位置,cuDNN在/usr/local/cuda/lib64, 而cuda在/usr/local/cuda-8.0/lib64,所以這個時候的bashrc應該這么寫:
export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}寫完後,
source ~/.bashrc
cd tensorflow/tensorflow/models/image/mnist
python convolutional.py


成功的話會出現流暢的跑動:
h@h:~/Downloads/tensorflow/tensorflow/models/image/mnist$ python convolutional.py
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcudnn.so.5.0.5 locally
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcurand.so locally
Extracting data/train-images-idx3-ubyte.gz
Extracting data/train-labels-idx1-ubyte.gz
Extracting data/t10k-images-idx3-ubyte.gz
Extracting data/t10k-labels-idx1-ubyte.gz
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:925] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
I tensorflow/core/common_runtime/gpu/gpu_init.cc:102] Found device 0 with properties:
name: GeForce GTX 1080
major: 6 minor: 1 memoryClockRate (GHz) 1.8475
pciBusID 0000:01:00.0
Total memory: 7.92GiB
Free memory: 7.41GiB
I tensorflow/core/common_runtime/gpu/gpu_init.cc:126] DMA: 0
I tensorflow/core/common_runtime/gpu/gpu_init.cc:136] 0: Y
I tensorflow/core/common_runtime/gpu/gpu_device.cc:838] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 1080, pci bus id: 0000:01:00.0)
Initialized!
Step 0 (epoch 0.00), 8.4 ms
Minibatch loss: 12.054, learning rate: 0.010000
Minibatch error: 90.6%
Validation error: 84.6%

......

Minibatch error: 0.0%
Validation error: 0.7%
Step 8500 (epoch 9.89), 4.7 ms
Minibatch loss: 1.601, learning rate: 0.006302
Minibatch error: 0.0%
Validation error: 0.9%
Test error: 0.8%

③ 如何用python解析mnist

1.我們首先看一下mnist的數據結構:

2.
可以看出在train-images.idx3-ubyte中,第一個數為32位的整數(魔數,圖片類型的數),第二個數為32位的整數(圖片的個數),第三和第四個也是32為的整數(分別代表圖片的行數和列數),接下來的都是一個位元組的無符號數(即像素,值域為0~255),因此,我們只需要依次獲取魔數和圖片的個數,然後獲取圖片的長和寬,最後逐個像素讀取就可以了。

3.如何使用Python解析數據呢? 首先需要安裝python的圖形處理庫PIL,這個庫支持像素級別的圖像處理,對於學習數字圖像處理有很大的幫助。安裝完成之後,就可以進行圖像的解析了。看一下代碼:

4.首先打開文件,然後分別讀取魔數,圖片個數,以及行數和列數,在struct中,可以看到,使用了』>IIII』,這是什麼意思呢?意思就是使用大端規則,讀取四個整形數(Integer),如果要讀取一個位元組,則可以用』>B』(當然,這里用沒用大端規則都是一樣的,因此只有兩個或兩個以上的位元組才有用)。

5.什麼是大端規則呢?不懂的可以網路一下,這個不再贅述(http://ke..com/link?url=Bgg8b0vRr3b_SeGyOl8U4DmAbIQT9swGuNtD_21ctEI_NliqsQ-mKF73YT90EILF2EQy50mEua_M4z6Cma3rmK)

6.然後對於每張圖片,先創建一張空白的圖片,其中的』L』代表這張圖片是灰度圖,最後逐個像素讀取,然後寫進空白圖片里,最後保存圖片,就可以了

7.再來看一下mnist標簽的數據結構:

可以發現,與上面的非常相似,只不過這里每一個位元組變成了標簽而已(標簽大小為0~9)

8.好了,通過上述講解,最後我們可以通過python將mnist解析出來了,看一下效果:

程序源代碼如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-

from PIL import Image
import struct

def read_image(filename):
f = open(filename, 'rb')

index = 0
buf = f.read()

f.close()

magic, images, rows, columns = struct.unpack_from('>IIII' , buf , index)
index += struct.calcsize('>IIII')

for i in xrange(images):
#for i in xrange(2000):
image = Image.new('L', (columns, rows))

for x in xrange(rows):
for y in xrange(columns):
image.putpixel((y, x), int(struct.unpack_from('>B', buf, index)[0]))
index += struct.calcsize('>B')

print 'save ' + str(i) + 'image'
image.save('test/' + str(i) + '.png')

def read_label(filename, saveFilename):
f = open(filename, 'rb')
index = 0
buf = f.read()

f.close()

magic, labels = struct.unpack_from('>II' , buf , index)
index += struct.calcsize('>II')

labelArr = [0] * labels
#labelArr = [0] * 2000

for x in xrange(labels):
#for x in xrange(2000):
labelArr[x] = int(struct.unpack_from('>B', buf, index)[0])
index += struct.calcsize('>B')

save = open(saveFilename, 'w')

save.write(','.join(map(lambda x: str(x), labelArr)))
save.write('\n')

save.close()
print 'save labels success'

if __name__ == '__main__':
read_image('t10k-images.idx3-ubyte')
read_label('t10k-labels.idx1-ubyte', 'test/label.txt')

④ 如何生成.idx3-ubyte 格式的文件

其實就是python怎麼讀取binnaryfilemnist的結構如下,選取train-imagesTRAININGSETIMAGEFILE(train-images-idx3-ubyte):[offset][type][value][description]000032bitinteger0x00000803(2051)??pixel0017unsignedbyte??pixel..xxxxunsignedbyte??pixel也就是之前我們要讀取4個32bitinteger試過很多方法,覺得最方便的,至少對我來說還是使用struct.unpack_from()filename='train-images.idx3-ubyte'binfile=open(filename,'rb')buf=binfile.read()先使用二進制方式把文件都讀進來index=0magic,numImages,numRows,numColumns=struct.unpack_from('>IIII',buf,index)index+=struct.calcsize('>IIII')然後使用struc.unpack_from'>IIII'是說使用大端法讀取4個unsingedint32然後讀取一個圖片測試是否讀取成功im=struct.unpack_from('>784B',buf,index)index+=struct.calcsize('>784B')im=np.array(im)im=im.reshape(28,28)fig=plt.figure()plotwindow=fig.add_subplot(111)plt.imshow(im,cmap='gray')plt.show()'>784B'的意思就是用大端法讀取784個unsignedbyte完整代碼如下.pyplotaspltfilename='train-images.idx3-ubyte'binfile=open(filename,'rb')buf=binfile.read()index=0magic,numImages,numRows,numColumns=struct.unpack_from('>IIII',buf,index)index+=struct.calcsize('>IIII')im=struct.unpack_from('>784B',buf,index)index+=struct.calcsize('>784B')im=np.array(im)im=im.reshape(28,28)fig=plt.figure()plotwindow=fig.add_subplot(111)plt.imshow(im,cmap='gray')plt.show()

⑤ .idx3-ubyte怎麼打開

.idx3-ubyte文件是一種二進納拆制文件,可以使用專野緩用軟體,例如ImageJ或洞脊棗其他圖像處理軟體,來打開和查看該文件。此外,還可以使用Libtiff程序來處理這種文件,或者使用開發人員開發的應用程序也可以打開和查看這種文件。

⑥ 用cnn時必須用mnist.uint8資料庫

首先上搜索引擎,無論是網路還是google,搜「MNIST」第一個出來的肯定是
http://yann.lecun.com/exdb/mnist/ 沒錯,就是它!這個網頁上面有四個壓縮包的鏈接,下載下來吧少年!然後別忙著關掉這個網頁,因為後面的讀取數據還得依靠這個網頁的說明。
下面用其中一個包t10k-images_idx3為例子,寫代碼說明如何使用這個資料庫。
這是從verysource.com上面下載的源碼,贊一個!and再贊一個!
% Matlab_Read_t10k-images_idx3.m
% 用於讀取MNIST數據集中t10k-images.idx3-ubyte文件並將其轉換成bmp格式圖片輸出。
% 用法:運行程序,會彈出選擇測試圖片數據文件t10k-labels.idx1-ubyte路徑的對話框和
% 選擇保存測試圖片路徑的對話框,選擇路徑後程序自動運行完畢,期間進度條會顯示處理進度。
% 圖片以TestImage_00001.bmp~TestImage_10000.bmp的格式保存在指定路徑,10000個文件佔用空間39M。。
% 整個程序運行過程需幾分鍾時間。
% Written By DXY@HUST IPRAI
% 2009-2-22
clear all;
clc;
%讀取訓練圖片數據文件
[FileName,PathName] = uigetfile('*.*','選擇測試圖片數據文件t10k-images.idx3-ubyte');
TrainFile = fullfile(PathName,FileName);
fid = fopen(TrainFile,'r'); %fopen()是最核心的函數,導入文件,『r』代表讀入
a = fread(fid,16,'uint8'); %這里需要說明的是,包的前十六位是說明信息,從上面提到的那個網頁可以看到具體那一位代表什麼意義。所以a變數提取出這些信息,並記錄下來,方便後面的建立矩陣等動作。
MagicNum = ((a(1)*256+a(2))*256+a(3))*256+a(4);
ImageNum = ((a(5)*256+a(6))*256+a(7))*256+a(8);
ImageRow = ((a(9)*256+a(10))*256+a(11))*256+a(12);
ImageCol = ((a(13)*256+a(14))*256+a(15))*256+a(16);
%從上面提到的網頁可以理解這四句
if ((MagicNum~=2051)||(ImageNum~=10000))
error('不是 MNIST t10k-images.idx3-ubyte 文件!');
fclose(fid);
return;
end %排除選擇錯誤的文件。
savedirectory = uigetdir('','選擇測試圖片路徑:');
h_w = waitbar(0,'請稍候,處理中>>');
for i=1:ImageNum
b = fread(fid,ImageRow*ImageCol,'uint8'); %fread()也是核心的函數之一,b記錄下了一副圖的數據串。注意這里還是個串,是看不出任何端倪的。
c = reshape(b,[ImageRow ImageCol]); %亮點來了,reshape重新構成矩陣,終於把串轉化過來了。眾所周知圖片就是矩陣,這里reshape出來的灰度矩陣就是該手寫數字的矩陣了。
d = c'; %轉置一下,因為c的數字是橫著的。。。
e = 255-d; %根據灰度理論,0是黑色,255是白色,為了弄成白底黑字就加入了e
e = uint8(e);
savepath = fullfile(savedirectory,['TestImage_' num2str(i,'d') '.bmp']);
imwrite(e,savepath,'bmp'); %最後用imwrite寫出圖片
waitbar(i/ImageNum);
end
fclose(fid);
close(h_w);
在選擇好的路徑中,就有了一大堆MNIST的手寫數字的圖片。想弄哪個,就用imread()弄它!

⑦ 如何讀取t10k-images

# 默認open(...,'r') 是指用文本方式打開文件 trainfile = open('train-images.idx3-ubyte', 'r') print 'start train file' trainfile.read(16) matrix_number = 10000 y =28 * 28 * matrix_number line = trainfile.read(y) # 讀取大小為y的或...

⑧ 誰可以告訴我後綴名是.idx3-ubyte的文件怎麼用

額,正好剛剛遇到這個問題。idx3-ubyte應該是這個網站http://yann.lecun.com/exdb/mnist/上提供的手寫數字識別的源數據,在這個網站上有對這種數據的說明。
這里提供一個 matlab讀取這種數據的M文件,函數名叫readMNIST 。老外寫的,文件下載地址http://www.mathworks.com/matlabcentral/fileexchange/27675-read-digits-and-labels-from-mnist-database , 點擊該網站右手邊的download submission . 接下來,就看你matlab了,搞這個的,matlab肯定會用吧。

⑨ 如何製作像mnist,CIFAR-10格式的數據集

MNIST 數據集
混合的國家標准和技術 (簡稱 MNIST) 由紅外研究員,作為基準來比較不同的紅外演算法創建數據集。 其基本思想是如果你有你想要測試紅外的演算法或軟體的系統,可以運行您的演算法或系統針對 MNIST 的數據集和比較您的結果與其他系統以前發布成果。
數據集包含的共 70,000 圖像 ; 60,000 訓練圖像 (用於創建紅外模型) 和 10,000 測試圖像 (用於評估模型的精度)。 每個 MNIST 圖像是一個單一的手寫的數字字元的數字化的圖片。 每個圖像是 28 x 28 像素大小。 每個像素值是 0,表示白色,至 255,表示黑。 中間像素值表示的灰度級。 圖 2 顯示了訓練集的前八位的圖像。 對應於每個圖像的實際數字是顯然對人,但確定數字是非常困難的挑戰的計算機。

圖 2 首八 MNIST 訓練圖像
奇怪的是,訓練數據和測試數據均存儲在兩個文件中,而不是在單個文件中。 其中一個文件包含圖像的像素值和,另一個包含圖像的標簽信息 (0 到 9)。 每個的四個文件還包含標頭信息,和所有的四個文件都存儲在已經使用 gzip 格式壓縮的二進制格式。
注意在圖 1,該演示程序使用僅 60,000 項目訓練集。 測試集的格式是相同的訓練集。 MNIST 文件的主存儲庫是目前位於 yann.lecun.com/exdb/mnist。 培訓的像素數據存儲在文件火車-圖像-idx3-ubyte.gz 和培訓標簽數據存儲在文件火車-標簽-idx1-ubyte.gz。 若要運行該演示程序,您需要轉到 MNIST 的存儲庫站點,下載並解壓的兩個培訓數據文件。 將文件解壓縮,我用的免費的開源 7-Zip 實用程序。
創建 MNIST 查看器
若要創建 MNIST 演示程序,我發起了 Visual Studio,創建一個名為 MnistViewer 的新 C# Windows 窗體項目。 演示有沒有重大的.NET 版本依賴關系,因此,任何版本的 Visual Studio 應該工作。
模板代碼載入到 Visual Studio 編輯器後,我設置的 UI 控制項。 我添加了兩個 TextBox 控制項 (textBox1,textBox2) 要堅持兩個解壓後的培訓文件的路徑。 我添加一個按鈕控制項 (button1),並給了它一個標簽載入圖像。 我添加了兩個多個 TextBox 控制項 (textBox3,textBox4) 以保存當前圖像索引和下一個圖像索引的值。 我使用 Visual Studio 設計器,分別設置"NA"和"0,"這些控制項的初始值。
我添加了一個 ComboBox 控制項 (comboBox1) 的圖像放大倍數值。 使用設計器,我去到該控制項的項集合,添加字元串"1"到"10"。我添加了第二個按鈕控制項 (button2),並給了它一個標簽的顯示下一次。 我添加了 PictureBox 控制項 (pictureBox1),將其背景色屬性設置為 ControlDark,以便看到控制項的輪廓。 我將圖片框大小設置為 280 x 280 允許最多 10 倍的放大倍率 (回顧 MNIST 圖像是 28 x 28 像素為單位)。 我添加了第五個 (textBox5) 文本框以顯示十六進制值的圖像,然後將其多行屬性設置為 True 和其字體屬性設置為 8.25 磅 Courier New 和擴大其大小到 606 x 412。 而且,最後,我添加了一個列表框控制項 (listBox1) 的日誌記錄消息。
後放置 UI 控制項拖到 Windows 窗體,添加三個類范圍欄位:
public partial class Form1 : Form
{
private string pixelFile =
@"C:\MnistViewer\train-images.idx3-ubyte";
private string labelFile =
@"C:\MnistViewer\train-labels.idx1-ubyte";
private DigitImage[] trainImages = null;
...

第一次兩個字元串指向解壓後的培訓數據文件的位置。 你會需要編輯這些要運行演示的兩個字元串。 第三個欄位是一個程序定義 DigitImage 對象的數組。
我編輯窗體的構造函數略成 textBox1 和 textBox2 地點的文件路徑,並給予放大倍數初始值 6:
public Form1()
{
InitializeComponent();
textBox1.Text = pixelFile;
textBox2.Text = labelFile;
comboBox1.SelectedItem = "6";
this.ActiveControl = button1;
}

我用的 ActiveControl 屬性來設置初始焦點到 button1 控制項,只是為了方便。

⑩ 普通電腦PC怎樣跑TensorFlow的GPU模式

首先需要看你的PC配置是否夠,TF的GPU模式只支持N卡,然後計算能力高於3.0,具體可以查:https://developer.nvidia.com/cuda-gpus


安裝教程可以參考:http://haiy.github.io/2016/07/17/ubuntu16.04%E4%B8%8AGTX1080%E7%9A%84CUDA%E5%AE%89%E8%A3%85.html

http://blog.csdn.net/zhaoyu106/article/details/52793183


Ubuntu16.04上gtx1080的cuda安裝

July 17 2016

目前tensorflow是一個非常流行的深度學習計算框架,常規硬體及系統的安裝方法官方的doc已經說的很清楚了,但是 因為系統是ubuntu16.04,顯卡是GTX1080,所以不可避免的要折騰起來。在上一篇已經在16.04上安裝好了驅動。接下來其實 重點安裝的是CUDA和cuDNN.

首先說為什麼要安裝CUDA和cuDNN,關於採用GPU計算比CPU有速度有多少提升的benchmark找找就有,這次重點是怎麼讓tensorflow充分用的 上GTX1080能力。具體的就是如何把支持GTX1080的CUDA和cuDNN裝起來,然後讓tensorflow認識我們新裝的CUDA和cuDNN。

首先總體說下安裝步驟:

1 首先要注冊NVIDIA developer的帳號,分別下載CUDA和cuDNN

2 確認准備gcc版本,安裝依賴庫sudo apt-get install freegl

3 安裝CUDA

4 解壓cuDNN

5 clone tensorflow源碼,configure配置

6 編譯安裝

7 最後一哆嗦,測試!

准備工作

在正式開始前,猜核尺需要做幾個准備工作,主要是大概先看下文檔

cuda FAQ

tensorflow 的安裝文檔

cuda-gpu的支持列表/計算能力/FAQ

cudnn 5.1有多牛

cuda tookit下載頁面

CUDA_Installation_Guide_Linux.pdf

cudnn User Guide

文檔看過之後接下來就是實際動手的過程:

1 注冊NVIDIA developer的帳號,分別下載CUDA和cuDNN

1.1 下載CUDA 打開cuda toolkit下載頁面,GTX1080 要用的是CUDA 8。先點擊JOIN,注冊帳號。 完了後,再回到cuda toolkit下載頁面。選擇 linux, x86-64, ubuntu, 16.04, runfile(local)

1.2 下載cuDNN 進入cudnn的下載頁,一堆調查,日誌寫時下載的是[Download cuDNN v5 (May 27, 2016), for CUDA 8.0 RC],點開選linux,不出意外的話這個就是下載地址.

2 確認GCC版本,安裝依賴庫

確認本機穗高gcc版本,16.04默認的是gcc 5,這里安裝需要的最高是gcc 4.9。接下來就氏答安裝配置gcc 4.9.

2.1 安裝gcc 4.9,並修改系統默認為4.9

sudo apt-get install gcc-4.9 gcc-4.9 g++-4.9 g++-4.9
gcc --version
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 10
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30
sudo update-alternatives --set cc /usr/bin/gcc
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30
sudo update-alternatives --set c++ /usr/bin/g++
gcc --version

2.2 一個小依賴

sudo apt-get install freegl

3 安裝CUDA

需要注意的是這個地方有個選擇安裝低版本驅動的地方,選n 大致的安裝流程如下:

3.1 安裝CUDA

chmod +x /cuda_8.0.27_linux.run
./cuda_8.0.27_linux.run

....

Do you accept the previously read EULA?
accept/decline/quit: accept

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 361.62?
(y)es/(n)o/(q)uit: n

Install the CUDA 8.0 Toolkit?
(y)es/(n)o/(q)uit: y

Enter Toolkit Location
[ default is /usr/local/cuda-8.0 ]:

Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y

Install the CUDA 8.0 Samples?
(y)es/(n)o/(q)uit: y

Enter CUDA Samples Location
[ default is /home/h ]: /home/h/Documents/cuda_samples

....


3.2 寫入環境變數

vim ~/.bashrc
#添加下面變數
export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

3.3 安裝好後簡單驗證

a. 進入剛配置時指定的cuda sample所在文件夾,NVIDIA_CUDA-8.0_Samples/

b. cd 0_Simple/asyncAPI;sudo make

c. NVIDIA_CUDA-8.0_Samples/0_Simple/asyncAPI$ ./asyncAPI [./asyncAPI] - Starting… GPU Device 0: 「GeForce GTX 1080」 with compute capability 6.1 CUDA device [GeForce GTX 1080] time spent executing by the GPU: 10.94 time spent by CPU in CUDA calls: 0.19 CPU executed 50591 iterations while waiting for GPU to finish

4 安裝cuDNN

h@h:~/Downloads$ tar xvzf cudnn-8.0-linux-x64-v5.0-ga.tgz
cuda/include/cudnn.h
cuda/lib64/libcudnn.so
cuda/lib64/libcudnn.so.5
cuda/lib64/libcudnn.so.5.0.5
cuda/lib64/libcudnn_static.a

h@h:~/Downloads$ sudo cp -R cuda/lib64 /usr/local/cuda/lib64
h@h:~/Downloads$ sudo mkdir -p /usr/local/cuda/include
h@h:~/Downloads/cuda$ sudo cp include/cudnn.h /usr/local/cuda/include/
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*


5 clone, configure tensorflow

5.1 clone源碼

$ git clone https://github.com/tensorflow/tensorflow

5.2 configure配置
整個配置流程應該跟下面的基本一樣的

h@h:~/Downloads/tensorflow$ cd ./tensorflow/
h@h:~/Downloads/tensorflow$ ./configure
Please specify the location of python. [Default is /usr/bin/python]:
***Do you wish to build TensorFlow with Google Cloud Platform support? [y/N] N***
No Google Cloud Platform support will be enabled for TensorFlow
***Do you wish to build TensorFlow with GPU support? [y/N] y***
GPU support will be enabled for TensorFlow
Please specify which gcc nvcc should use as the host compiler. [Default is /usr/bin/gcc]:
**Please specify the location where CUDA toolkit is installed. Refer to README.md for more details. [Default is /usr/local/cuda]: /usr/local/cuda-8.0 **

**Please specify the Cudnn version you want to use. [Leave empty to use system default]: 5.0.5**
**Please specify the location where cuDNN 5.0.5 library is installed. Refer to README.md for more details. [Default is /usr/local/cuda-8.0]: /usr/local/cuda**
Please specify a list of comma-separated Cuda compute capabilities you want to build with.
You can find the compute capability of your device at: https://developer.nvidia.com/cuda-gpus.
**Please note that each additional compute capability significantly increases your build time and binary size.
[Default is: "3.5,5.2"]: 6.1**
Setting up Cuda include
Setting up Cuda lib64
Setting up Cuda bin
Setting up Cuda nvvm
Setting up CUPTI include
Setting up CUPTI lib64
Configuration finished

6 編譯安裝

6.1 編譯工具Bazel安裝配置
先看一眼文檔然後就執行下面的流程:

#安裝java 1.8
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

#安裝好後車參考下
java -version

#添加源
echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
curl https://storage.googleapis.com/bazel-apt/doc/apt-key.pub.gpg | sudo apt-key add -

#下載
sudo apt-get update && sudo apt-get install bazel

#升級
sudo apt-get upgrade bazel

6.2 編譯tensorflow的pip版本並安裝

$ bazel build -c opt //tensorflow/tools/pip_package:build_pip_package

# To build with GPU support:
$ bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package

$ bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg

# The name of the .whl file will depend on your platform.
#注意編譯完成後生成的文件名字和官方doc裡面的是不一定一致的

$ sudo pip install /tmp/tensorflow_pkg/tensorflow-0.*-linux_x86_64.whl

i6700k 32g編譯時間:

只編譯代碼不帶pip INFO: Elapsed time: 967.271s, Critical Path: 538.38s

bazel-bin/tensorflow/tools/pip_package/build_pip_package INFO: Elapsed time: 65.183s, Critical Path: 48.58

7 最後測試

前面都整完了,現在該測試了,注意前面有兩個動態鏈接庫的位置,cuDNN在/usr/local/cuda/lib64, 而cuda在/usr/local/cuda-8.0/lib64,所以這個時候的bashrc應該這么寫:

export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}


寫完後,

source ~/.bashrc
cd tensorflow/tensorflow/models/image/mnist
python convolutional.py

成功的話會出現流暢的跑動:

h@h:~/Downloads/tensorflow/tensorflow/models/image/mnist$ python convolutional.py
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcudnn.so.5.0.5 locally
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcurand.so locally
Extracting data/train-images-idx3-ubyte.gz
Extracting data/train-labels-idx1-ubyte.gz
Extracting data/t10k-images-idx3-ubyte.gz
Extracting data/t10k-labels-idx1-ubyte.gz
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:925] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
I tensorflow/core/common_runtime/gpu/gpu_init.cc:102] Found device 0 with properties:
name: GeForce GTX 1080
major: 6 minor: 1 memoryClockRate (GHz) 1.8475
pciBusID 0000:01:00.0
Total memory: 7.92GiB
Free memory: 7.41GiB
I tensorflow/core/common_runtime/gpu/gpu_init.cc:126] DMA: 0
I tensorflow/core/common_runtime/gpu/gpu_init.cc:136] 0: Y
I tensorflow/core/common_runtime/gpu/gpu_device.cc:838] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 1080, pci bus id: 0000:01:00.0)
Initialized!
Step 0 (epoch 0.00), 8.4 ms
Minibatch loss: 12.054, learning rate: 0.010000
Minibatch error: 90.6%
Validation error: 84.6%

......

Minibatch error: 0.0%
Validation error: 0.7%
Step 8500 (epoch 9.89), 4.7 ms
Minibatch loss: 1.601, learning rate: 0.006302
Minibatch error: 0.0%
Validation error: 0.9%
Test error: 0.8%

閱讀全文

與idx3ubyte文件解壓相關的資料

熱點內容
如何將web數據存在txt文件里 瀏覽:954
word2007怎麼刪除某一頁的頁碼 瀏覽:556
編程貓中怎麼做排行榜 瀏覽:225
win10開啟開機密碼 瀏覽:940
在linux上查找文件 瀏覽:593
07版word選擇性粘貼 瀏覽:922
尚學堂高淇java 瀏覽:727
wordpress分頁seo 瀏覽:213
蘋果手機qq音樂導入文件 瀏覽:653
數據結構宜用什麼結構 瀏覽:546
派派里的寵物對戰怎麼升級 瀏覽:503
帕薩特鏈條數據多少需要更換 瀏覽:486
魅族手機賬戶密碼忘記怎麼辦 瀏覽:80
llftool萬能低格工具怎麼用 瀏覽:224
什麼是編程的語言 瀏覽:394
向ipad傳輸的文件找不到 瀏覽:512
微信收藏視頻文件夾 瀏覽:461
cad文件布局在哪 瀏覽:844
為什麼oppo手機找不到主題文件 瀏覽:91
ie已安裝更高版本的 瀏覽:639

友情鏈接