我试图将scikit-learn的PolynomialFeatures实现为tensorflow和Keras中的前馈神经网络中的一个层.为简单起见,我将举例说明使用NumPy数组.如果批次具有三个样本并且某个层的激活等于(3,2)形矩阵
>>> X = np.arange(0, 6).reshape(2, 3)
>>> X
array([[0, 1],
[2, 3],
[4, 5]])
Run Code Online (Sandbox Code Playgroud)
然后我希望下一层中的激活等于2次多项式特征扩展X:
>>> from sklearn.preprocessing import PolynomialFeatures
>>> PolynomialFeatures(degree=2).fit_transform(X)
array([[ 1., 0., 1., 0., 0., 1.],
[ 1., 2., 3., 4., 6., 9.],
[ 1., 4., 5., 16., 20., 25.]])
Run Code Online (Sandbox Code Playgroud)
也就是说,如果层i的激活是X(形状(batch_size, num_features))矩阵,那么对于参数选择,degree=2我希望层i + 1的激活是一个串联
batch_size许多1.人的专栏,X 本身,X:X[:, 0] * X[:, 0],X[:, 0] * …