0
実行時に決定されとる変数を作成その形状は唯一私が持っているRNNセルへの入力を作成しようとしています
- 入力テンソル寸法
batch_size x time_step x n_classes
- 初期隠された状態テンソル
h
のx
寸法batch_size x hidden_state_size
の問題は、今、私はそれがの形状を有するようh
を作成するためにtf.get_variable(...)
を使用する方法がわからないだということです?
は現在のバッチサイズです。
私はそうのようなx
を定義することができていますように私はx
でこの問題を持っていない:だからbatch_size
が自動的にtf.reshape
から推測される
x = tf.nn.embedding_lookup(self.pretrained_embeddings, self.input_placeholder)
x = tf.reshape(x, (-1, self.max_length, Config.n_features * Config.embed_size))
のでx.get_shape()
は私に(?, max_length, n_features * embed_size)
h
を作成する唯一の回避策は、次のとおりです。
# x_ is of shape (max_length, batch_size, n_features * embed_size)
x_ = tf.unstack(x, axis = 1)
# h is of shape (batch_size, n_features)
h = tf.get_variable("h", tf.shape(x_[0]), initializer =
tf.constant_initializer(0.0))
はその後
h.get_shape()
は偶然私の
hidden_state_size
に等しい希望
(?, n_features * embed_size)
与えるだろう。この回避策の問題は、
hidden_state_size
が
n_features * embed_size
に等しい場合にのみ有効であり、常にそうであるとは限りません。
ValueError: Shape of a new variable (pred/h) must be fully defined, but instead was (?, 300)