2017-06-06 36 views
0

我正在使用Neural Nets,我想在FPGA上實現它。我有一個代碼在MNIST上工作,我想用float32獲得初始權重,然後重新調整固定點的FPGA上的權重。我有一個Python中的浮點列表,我怎樣才能將它轉換成定點表示?

我正在python中運行我的模擬。我正在尋找一種方式來做到這一點的轉換

from keras.datasets import mnist 
from keras.layers import Dense 
from keras.models import Sequential 
from keras.layers import Dropout 
from keras.utils import np_utils 
import matplotlib.pyplot as plt 
(x, y), (X, Y) = mnist.load_data() 

num = x.shape[1] * x.shape[2] 
x = x.reshape(x.shape[0],x.shape[1]*x.shape[2]).astype('float32') 
X = X.reshape(X.shape[0],X.shape[1]*X.shape[2]).astype('float32') 

x = x/255 
X = X/255 

y = np_utils.to_categorical(y) 
Y = np_utils.to_categorical(Y) 

classes = y.shape[1] 

def calc(): 
    model = Sequential() 
    model.add(Dense(num, input_dim = num, init = 'normal', activation = 'relu')) 
    model.add(Dense(classes, init = 'normal', activation = 'softmax')) 
    model.compile(loss = 'categorical_crossentropy', optimizer = 'adam', metrics = ['accuracy']) 
    return model 

model = calc() 
model.fit(x, y, validation_data=(X, Y), nb_epoch=10, batch_size=200, 
    verbose=2) 
scores = model.evaluate(X, Y, verbose=0) 
print("Accuracy: ", scores) 
+0

我想每一層的權重轉換成固定點表示,因此可以接受再培訓 –

+0

什麼變量是這個名單?它真的是一個列表嗎?或numpy數組?或者一些專門的'kereas'類型? – hpaulj

+0

「固定點」是什麼意思? –

回答

1

究竟你要轉換的(你有沒有指出了這一點),但在一般情況下,你可以完成你想要的它是不是從你的問題明確做

np.array(your_list, dtype=np.float32) 
+0

我想將每個圖層的權重轉換爲定點表示,以便重新訓練。 我認爲float32不符合我的要求。我需要一個固定點表示。 –

+0

@AbhinavGoel沒關係,然後嘗試以上。 –

相關問題