Make the creation of LoDTensor more user friendly in book examples
Created by: kexinzhao
Currently, in book examples (understand sentiments, label semantic roles, word2vec, recommender system, rnn_encoder_decoder and machine translation) that uses LoDTensor with LoD info for training or inference, we use similar functions to create LoDTensor from python list or numpy array.
Some examples are as follows: https://github.com/PaddlePaddle/Paddle/blob/4e86c89b72aa7c86b14f1bff327b1a751c39c924/python/paddle/fluid/tests/book/notest_understand_sentiment.py#L128-L133
The LoD information used in the book examples is something like [0, 4, 10]
based on offset, which is a little bit confusing to users because they are more comfortable with using length instead with something like [[4, 6]]
.
Although we don't want to change the implementation of LoD using offsets, we want to provide a user friendly wrapper like follows:
lod_tensor = create_lod_tensor(numpy array or tensor, [[4, 6]], place)
Internally, the length based LoD input will be converted to offset based.
To do list:
- create such a utility function
- clean up book example code with duplicated lod_tensor creation function