【发布时间】:2019-02-01 02:35:52
【问题描述】:
from random import randint
from random import seed
import math
import numpy as np
from keras.models import Sequential
from keras.layers import LSTM
from keras.layers import Dense,TimeDistributed,RepeatVector
seed(1)
def ele():
X,y = [],[]
for i in range(1):
l1=[]
for _ in range(2):
l1.append(randint(1,10))
X.append(l1)
y.append(sum(l1))
for i in range(1):
X = str(X[0][0])+'+'+str(X[0][1])
y = str(y[0])
char_to_int = dict((c, i) for i, c in enumerate(alphabet))
Xenc,yenc = [],[]
for pattern in X:
integer_encoded = [char_to_int[char] for char in pattern]
Xenc.append(integer_encoded[0])
for pattern in y:
integer_encoded = [char_to_int[char] for char in pattern]
yenc.append(integer_encoded[0])
k,k1 = [],[]
for i in range(1):
for j in Xenc:
vec = np.zeros(11)
vec[j] = 1
k.append(vec)
for j in yenc:
vec1 = np.zeros(11)
vec1[j] = 1
k1.append(vec1)
k = np.array(k)
k1 = np.array(k1)
return k,k1
alphabet = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+']
model = Sequential()
model.add(LSTM(100, input_shape=(n_in_seq_length,11)))
model.add(RepeatVector(2))
model.add(LSTM(50, return_sequences=True))
model.add(TimeDistributed(Dense(n_chars, activation='softmax')))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
for i in range(1):
X,y = ele()
#X = np.reshape(X, (4,1,11))
model.fit(X, y, epochs=1, batch_size=10)
我收到了这个错误:
ValueError Traceback(最近调用 最后)在() 第53章 54 #X = np.reshape(X, (4,1,11)) ---> 55 model.fit(X, y, epochs=1, batch_size=10)
~\Anaconda3\lib\site-packages\keras\engine\training.py in fit(self, x, y,batch_size,epochs,详细,回调,validation_split, 验证数据,洗牌,类权重,样本权重,初始时期, steps_per_epoch, validation_steps, **kwargs) 第948章 第949章 --> 950 批次大小=批次大小) 951 # 准备验证数据。 第952章
~\Anaconda3\lib\site-packages\keras\engine\training.py 在 _standardize_user_data(self, x, y, sample_weight, class_weight, check_array_lengths, batch_size) 第747章 748 check_batch_axis=False, #不强制批量大小。 --> 749 异常_前缀='输入') 750 751 如果 y 不是无:
~\Anaconda3\lib\site-packages\keras\engine\training_utils.py 在 标准化输入数据(数据,名称,形状,check_batch_axis, 异常前缀) 125 ': 预期 ' + names[i] + ' 有 ' + 126 str(len(shape)) + ' 维度,但得到了数组 ' --> 127 '带形状' + str(data_shape)) 128 如果不是 check_batch_axis: 129 数据形状=数据形状[1:]
ValueError:检查输入时出错:预期 lstm_42_input 有 3 维,但得到了形状为 (4, 11) 的数组
【问题讨论】:
标签: python machine-learning keras reshape