将 int64 输入到 keras 并仅使用 int64 处理数据

问题描述

exData = pd.read_csv('AP11.csv',delimiter=';',float_precision=None)
pd.set_option('display.max_colwidth',None )

x = exData.loc[:,['A','B']]
y = exData.loc[:,['C']]

    
x=x.astype('int64')
y=y.astype('int64')



opt = Adam(lr=0.001,decay=1e-6)
model = keras.Sequential([
keras.layers.Dense(2,input_dim=2,activation=keras.activations.sigmoid ),keras.layers.Dense(1,activation=keras.activations.relu ),])

model.compile(optimizer=opt,loss="categorical_crossentropy",metrics=model.compile(optimizer=opt,metrics=['accuracy']))
model.fit(x,y,batch_size=64,epochs=100)

您好,我想将我的数据作为 int64 提供给 keras,我希望 keras 将其处理为 int64 并将其输出为 int64。我不希望任何 float64 参与这个过程。 float64 对我的应用程序来说根本不精确。 我想你可能会注意到我的代码不太好,因为我之前没有编写机器学习程序,所以如果需要,请纠正我以改进我的代码

解决方法

密集层仅适用于浮动。唯一的方法是从头开始创建自定义层。由于最小值和最大值之间的差异很小,我认为不可能使用 int64 权重有效地反向传播梯度。