我正在使用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)
我想每一层的权重转换成固定点表示,因此可以接受再培训 –
什么变量是这个名单?它真的是一个列表吗?或numpy数组?或者一些专门的'kereas'类型? – hpaulj
“固定点”是什么意思? –