我需要将可变长度序列提供给我的模型.
我的模特是Embedding + LSTM + Conv1d + Maxpooling + softmax.
当我mask_zero = True进入时Embedding,我无法编译Conv1d.
如何输入掩码值Conv1d或是否有其他解决方案?
我想通过代码xor练习keras,但结果不对,接下来是我的代码,感谢大家帮助我.
from keras.models import Sequential
from keras.layers.core import Dense,Activation
from keras.optimizers import SGD
import numpy as np
model = Sequential()# two layers
model.add(Dense(input_dim=2,output_dim=4,init="glorot_uniform"))
model.add(Activation("sigmoid"))
model.add(Dense(input_dim=4,output_dim=1,init="glorot_uniform"))
model.add(Activation("sigmoid"))
sgd = SGD(l2=0.0,lr=0.05, decay=1e-6, momentum=0.11, nesterov=True)
model.compile(loss='mean_absolute_error', optimizer=sgd)
print "begin to train"
list1 = [1,1]
label1 = [0]
list2 = [1,0]
label2 = [1]
list3 = [0,0]
label3 = [0]
list4 = [0,1]
label4 = [1]
train_data = np.array((list1,list2,list3,list4)) #four samples for epoch = 1000
label = np.array((label1,label2,label3,label4))
model.fit(train_data,label,nb_epoch = 1000,batch_size = 4,verbose = …Run Code Online (Sandbox Code Playgroud) 我的输入是一个200 dims向量,它是通过文章中所有单词的word2vector生成的,我的输出是50 dims向量,它是由我想用mse作为损失函数的文章的LDA结果生成的,但损失的价值总是0我的代码如下:
<pre>model = Sequential()
model.add(Dense(cols*footsize, 400,init = "glorot_uniform"))
# model.add(LeakyReLU(alpha = 0.3))
model.add(Activation('relu'))
model.add(Dropout(0.2))
model.add(Dense(400, 400,init = "glorot_uniform"))
model.add(Activation('relu'))
model.add(Dropout(0.2))
model.add(Dense(400, 50,init = "glorot_uniform"))
model.add(Activation('softmax'))
model.compile(loss='mse', optimizer='rmsprop')</pre>
Run Code Online (Sandbox Code Playgroud)
谁能告诉我为什么,谢谢!