【发布时间】:2017-06-06 20:07:32
【问题描述】:
我正在使用神经网络,我想在 FPGA 上实现它。我有一个在 MNIST 上工作的代码,我想使用 float32 获得初始权重,然后在 FPGA 上用定点重新训练权重。
我正在 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,输出是一个numpy数组
-
@VivekKumar ,我的意思是我的小数部分准确地说是 16 位,整数部分是 4 位。我不想使用浮点小数点。
标签: python arrays numpy floating-point