如何可以重塑從形狀(1,1,10)Keras張量來塑造(10),而無需指定初始輸入形狀? 使用平鋪()(作爲一個命令)給出重塑Keras張量
<tf.Tensor 'flatten_11/Reshape:0' shape=(?, ?) dtype=float32>
作爲輸出 並給出了一個錯誤,而在模型中使用它
model = Sequential()
model.add(Convolution1D(filters=self.nb_filters,
kernel_size=self.n_gram,
padding='valid',
activation='relu',
input_shape=(None,3*self.vecsize)))
model.add(MaxPooling1D(pool_size=3*self.vecsize-self.n_gram+1))
model.add(Flatten())
model.add(Dense(num_categories, activation='softmax'))
它說: 輸入到形狀「 「Flatten」沒有完全定義(got(None,10)。確保將完整的「input_shape」或「batch_input_shape」參數傳遞給模型中的第一層。
Init IAL輸入形狀爲1×任意維* vecsize,我強烈不希望事先指定的任意尺寸。
使用平鋪((1,1,10)),而不是僅僅拼合()也產生一個錯誤:
類型錯誤:__init __()需要1個位置參數,但2分別給予
所以我應該怎麼做才能使它工作?
給出的消息,這聽起來你的輸出'(無,10)'已經正是你所需要的'Dense'形狀。似乎沒有重塑是必要的。 –