Machine learning 如何重塑Keras中的张量
我有两个keras张量:LSTM和SIM。我打印出两个张量的形状。LSTM具有形状Machine learning 如何重塑Keras中的张量,machine-learning,tensorflow,deep-learning,keras,reshape,Machine Learning,Tensorflow,Deep Learning,Keras,Reshape,我有两个keras张量:LSTM和SIM。我打印出两个张量的形状。LSTM具有形状(1,18),而SIM具有形状(18,18)。我想将模拟人生重塑为(1,18)。所以我尝试了以下代码 sims = keras.layers.core.Reshape((1, 18))(sims) keras.layers.core.reforme给了我一个错误: ValueError: total size of new array must be unchanged 我还尝试了lambda层来包装tenso
(1,18)
,而SIM具有形状(18,18)
。我想将模拟人生重塑为(1,18)
。所以我尝试了以下代码
sims = keras.layers.core.Reshape((1, 18))(sims)
keras.layers.core.reforme给了我一个错误:
ValueError: total size of new array must be unchanged
我还尝试了lambda层来包装tensorflow.reforme()
但它给了我一个形状为(18,1,18)
所以,我的问题是如何将sims张量重塑为(1,18)
提前谢谢
LSTMs = keras.layers.concatenate([lstm1, lstm2, lstm3, lstm4, lstm5, lstm6, lstm7, lstm8, lstm9])
sims = keras.layers.concatenate([sim1, sim1, sim2, sim2, sim3, sim3, sim4, sim4, sim5,
sim5, sim6, sim6, sim7, sim7, sim8, sim8, sim9, sim9])
print 'shape(sims)b4', keras.backend.int_shape(sims)
print 'shape(LSTMs)b4', keras.backend.int_shape(LSTMs)
sims = keras.layers.core.Reshape((1, 18))(sims)
#sims = keras.layers.Lambda(reshape, output_shape=(1, 18))(sims)
print 'shape(sims)af', keras.backend.int_shape(sims)
是否每个
sim1
,sim2
等都具有相同的形状?@RohitShinde,是的,它们具有相同的形状well。。。由于要连接18个sim张量,因此无法避免输出是一个sim张量的18倍。您是否打算Add()([sim1,sim1,sim2…])
?--如果没有,您必须处理这样一个事实:连接的sim卡的大小是一个sim卡的18倍。而串联的LSTM只有9个。如果您添加每个元素的打印int_形状的结果,我们可能会提供更多帮助。
LSTMs = keras.layers.concatenate([lstm1, lstm2, lstm3, lstm4, lstm5, lstm6, lstm7, lstm8, lstm9])
sims = keras.layers.concatenate([sim1, sim1, sim2, sim2, sim3, sim3, sim4, sim4, sim5,
sim5, sim6, sim6, sim7, sim7, sim8, sim8, sim9, sim9])
print 'shape(sims)b4', keras.backend.int_shape(sims)
print 'shape(LSTMs)b4', keras.backend.int_shape(LSTMs)
sims = keras.layers.core.Reshape((1, 18))(sims)
#sims = keras.layers.Lambda(reshape, output_shape=(1, 18))(sims)
print 'shape(sims)af', keras.backend.int_shape(sims)