我正在尝试使用 Keras 实现神经网络。我的错误如下:

Posted

技术标签:

【中文标题】我正在尝试使用 Keras 实现神经网络。我的错误如下:【英文标题】:I am trying to implement a neural network using Keras. My error is listed below: 【发布时间】:2021-05-16 17:47:43 【问题描述】:

错误:层序号_9 的输入 0 与层不兼容:输入形状的预期轴 -1 具有值 2,但接收到形状为 (25, 1) 的输入

输入条件:随机两组数据集,每组有50个数据模式,二维x1和x2。一个数据集有 0

以下是我的代码:

import tensorflow as tf
import numpy as np
import random
from tensorflow import keras
from keras.models import Sequential
from keras.layers import Dense

model = tf.keras.Sequential([keras.layers.Dense(units=4, input_shape=[2])])
model.add(Dense(units= 3, activation='relu'))
model.add(Dense(units= 1, activation='sigmoid'))
model.compile(optimizer='sgd', loss='mean_squared_error')

x1 = list(np.random.uniform(0,3,50))
x2 = list(np.random.uniform(0,3,50))
labels = [0 for i in range(50)]                                                 #target is set  to 0

                                                                                #concatenating the list with tother condition of <6<=9
x1 = x1+ list(np.random.uniform(6,9,50))                                        #Plotting the points between 6 to 9 and putting 50 random points 
x2 += list(np.random.uniform(6,9,50))
labels += [1 for i in range(50)]
x = np.append(x1, x2, axis= -1)
print (x)

x_train = np.array(x, dtype='float64')
tr = np.array(t, dtype='float64'

)

我也尝试过其他可能的语法:

x1 = []

x2 = []
t = []
for i in range(50):
  x1.append(random.uniform(0,3))
  x2.append(random.uniform(0,3))
for i in range(50):
  x1.append(random.uniform(6,9))
  x2.append(random.uniform(6,9))
for i in range(50):
  t.append(0)
for i in range(50):
  t.append(1)

x1 = np.random.uniform([0,3,size=(50,2))
x2 = np.random.uniform([6,9,size=(50,2))

它在最后一行显示错误,即 (model.fit) 行。

【问题讨论】:

我很困惑,你没有 model.fit() 行。我没有看到 .fit() 在任何地方被调用。 【参考方案1】:

我有很多不明白的地方。你没有 .fit() 行,所以我不知道你在问什么。您反复创建数组,然后覆盖它们。您还有几个未使用的变量(为什么?)。最后你从 keras 和 tensorflow.keras 导入,它们是完全独立的包。这是我认为您正在尝试做的尝试:

import tensorflow as tf, numpy as np

#Data
X = np.random.random((10_000,2)) #10_000 2-unit vectors. 
Y = np.random.random((10_000,))  #10_000 numbers. 

#Model
model = tf.keras.Sequential([
    tf.keras.layers.Dense(4),
    tf.keras.layers.Dense(3,'relu'),
    tf.keras.layers.Dense(1,'sigmoid'),
])
model.compile('sgd','mse')

#Training
model.fit(X,Y,256,10)

【讨论】:

以上是关于我正在尝试使用 Keras 实现神经网络。我的错误如下:的主要内容,如果未能解决你的问题,请参考以下文章

直方图频率激活时Keras Tensorboard错误

Keras 报告错误的准确性

直方图频率激活时的 Keras Tensorboard 错误

如何从 wine 数据集中解决 Keras 神经网络实现中的错误

预测的keras错误

将 Keras 集成到 SKLearn 管道?