如何解决我正在尝试使用 Keras 实现神经网络我的错误如下:
错误:层序列 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,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,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,size=(50,2))
x2 = np.random.uniform([6,2))
它显示了最后一行的错误,即 (model.fit) 行。
解决方法
我有很多不明白的地方。你没有 .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)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。