我正在研究神经网络,我想在 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)
最佳答案
使用 dtype=np.float32
将您的列表传递给 np.array
以指定 32 位 float 作为数据类型:
np.array(your_list, dtype=np.float32)
关于python - 将 float 列表转换为 NumPy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44398935/