我正在尝试创建一个循环神经网络。输入是用户历史的序列,其中每个历史由一个序列(具有不同长度)的编码(每个具有形状(300))组成。这是代码:
df['encodings_correct'] = [encoding if correct else
np.zeros(shape=encode_model.vector_size, dtype=np.float)
for encoding, correct in list(zip(nlp_encodings, df['correct']))]
encoding_depth = encode_model.vector_size
# Step 4 - Convert to a sequence per user id and shift features 1 timestep
seq = df.groupby('user_id').apply(
lambda r: (
tf.convert_to_tensor(np.concatenate(np.expand_dims(r['encodings_correct'].values, axis=-1), axis=-1)),
)
)
nb_users = len(seq)
# Step 5 - Get Tensorflow Dataset
dataset = tf.data.Dataset.from_generator(
generator=lambda: seq,
output_signature=(
tf.TensorSpec(shape=(None, encode_model.vector_size), dtype=tf.float32),
)
)
当我执行它时,tf.convert_to_tensor
会引发错误:
ValueError: Failed to convert a NumPy array to a Tensor (Unsupported object type numpy.ndarray).
我认为这与编码序列的可变长度有关,但我不明白如何解决它。