以 3d numpys 作为输入和线性回归(一个输出)的神经网络
Neural network with 3d numpys as input and linear regression (one output)
我已经用 NN 和 tensorflow 做了一些线性回归,但我的输入是一个 pandas 数据框 (X_train)。
现在我想创建一个带坐标的神经网络。我将 X1(x1,y1) 和 X2(x2,y2) 作为输入。 X1.shape:75、2、120 和 X2.shape:75、2、120 和 y.shape:75,1
NN网络的架构应该是怎样的??
我试过这个:
print('Shape X1:', np.shape(X1))
Shape X1: (75, 2, 120)
model = keras.Sequential()
model.add(layers.Dense(50, input_dim=len(X1[1]), kernel_initializer='normal', activation='relu'))
model.add(layers.Dense(50, activation='relu'))
model.add(layers.Dense(1, activation="linear"))
model.summary()
loss = 'mse'
metric = ['mse']
model.compile(loss=loss,
optimizer= tf.keras.optimizers.Adam(learning_rate=0.001),
metrics=metric)
history = model.fit(X1, y, epochs=50, validation_split=0.3, verbose=1)
这是我遇到的错误:
ValueError:层 sequential_6 的输入 0 与层不兼容:输入形状的预期轴 -1 具有值 2 但接收到形状为 [None、2、120]
的输入
更改输入形状。你必须删除一维:
import tensorflow as tf
X1 = tf.random.uniform((75, 2, 120))
model = tf.keras.Sequential()
model.add(tf.keras.layers.Dense(50, input_shape=(X1.shape[1], X1.shape[2]), kernel_initializer='normal', activation='relu'))
model.add(tf.keras.layers.Flatten())
model.add(tf.keras.layers.Dense(50, activation='relu'))
model.add(tf.keras.layers.Dense(1, activation="linear"))
model.summary()
我已经用 NN 和 tensorflow 做了一些线性回归,但我的输入是一个 pandas 数据框 (X_train)。 现在我想创建一个带坐标的神经网络。我将 X1(x1,y1) 和 X2(x2,y2) 作为输入。 X1.shape:75、2、120 和 X2.shape:75、2、120 和 y.shape:75,1
NN网络的架构应该是怎样的?? 我试过这个:
print('Shape X1:', np.shape(X1))
Shape X1: (75, 2, 120)
model = keras.Sequential()
model.add(layers.Dense(50, input_dim=len(X1[1]), kernel_initializer='normal', activation='relu'))
model.add(layers.Dense(50, activation='relu'))
model.add(layers.Dense(1, activation="linear"))
model.summary()
loss = 'mse'
metric = ['mse']
model.compile(loss=loss,
optimizer= tf.keras.optimizers.Adam(learning_rate=0.001),
metrics=metric)
history = model.fit(X1, y, epochs=50, validation_split=0.3, verbose=1)
这是我遇到的错误: ValueError:层 sequential_6 的输入 0 与层不兼容:输入形状的预期轴 -1 具有值 2 但接收到形状为 [None、2、120]
的输入更改输入形状。你必须删除一维:
import tensorflow as tf
X1 = tf.random.uniform((75, 2, 120))
model = tf.keras.Sequential()
model.add(tf.keras.layers.Dense(50, input_shape=(X1.shape[1], X1.shape[2]), kernel_initializer='normal', activation='relu'))
model.add(tf.keras.layers.Flatten())
model.add(tf.keras.layers.Dense(50, activation='relu'))
model.add(tf.keras.layers.Dense(1, activation="linear"))
model.summary()