👻 Check our latest review to choose the best laptop for Machine Learning engineers and Deep learning tasks!
I was going through this example of a LSTM language model on github (link).
What it does in general is pretty clear to me. But I"m still struggling to understand what calling contiguous()
does, which occurs several times in the code.
For example in line 74/75 of the code input and target sequences of the LSTM are created.
Data (stored in ids
) is 2-dimensional where first dimension is the batch size.
for i in range(0, ids.size(1) - seq_length, seq_length):
# Get batch inputs and targets
inputs = Variable(ids[:, i:i+seq_length])
targets = Variable(ids[:, (i+1):(i+1)+seq_length].contiguous())
So as a simple example, when using batch size 1 and seq_length
10 inputs
and targets
looks like this:
inputs Variable containing:
0 1 2 3 4 5 6 7 8 9
[torch.LongTensor of size 1x10]
targets Variable containing:
1 2 3 4 5 6 7 8 9 10
[torch.LongTensor of size 1x10]
So in general my question is, what does contiguous()
do and why do I need it?
Further I don"t understand why the method is called for the target sequence and but not the input sequence as both variables are comprised of the same data.
How could targets
be non-contiguous and inputs
still be contiguous?
EDIT:
I tried to leave out calling contiguous()
, but this leads to an error message when computing the loss.
RuntimeError: invalid argument 1: input is not contiguous at .../src/torch/lib/TH/generic/THTensor.c:231
So obviously calling contiguous()
in this example is necessary.
👻 Read also: what is the best laptop for engineering students?
PyTorch - What does contiguous() do? __del__: Questions
How can I make a time delay in Python?
5 answers
I would like to know how to put a time delay in a Python script.
Answer #1
import time
time.sleep(5) # Delays for 5 seconds. You can also use a float value.
Here is another example where something is run approximately once a minute:
import time
while True:
print("This prints once a minute.")
time.sleep(60) # Delay for 1 minute (60 seconds).
Answer #2
You can use the sleep()
function in the time
module. It can take a float argument for sub-second resolution.
from time import sleep
sleep(0.1) # Time in seconds
PyTorch - What does contiguous() do? __del__: Questions
How to delete a file or folder in Python?
5 answers
How do I delete a file or folder in Python?
Answer #1
os.remove()
removes a file.os.rmdir()
removes an empty directory.shutil.rmtree()
deletes a directory and all its contents.
Path
objects from the Python 3.4+ pathlib
module also expose these instance methods:
pathlib.Path.unlink()
removes a file or symbolic link.pathlib.Path.rmdir()
removes an empty directory.
We hope this article has helped you to resolve the problem. Apart from PyTorch – What does contiguous() do?, check other __del__-related topics.
Want to excel in Python? See our review of the best Python online courses 2023. If you are interested in Data Science, check also how to learn programming in R.
By the way, this material is also available in other languages:
- Italiano PyTorch – What does contiguous() do?
- Deutsch PyTorch – What does contiguous() do?
- Français PyTorch – What does contiguous() do?
- Español PyTorch – What does contiguous() do?
- Türk PyTorch – What does contiguous() do?
- Русский PyTorch – What does contiguous() do?
- Português PyTorch – What does contiguous() do?
- Polski PyTorch – What does contiguous() do?
- Nederlandse PyTorch – What does contiguous() do?
- 中文 PyTorch – What does contiguous() do?
- 한국어 PyTorch – What does contiguous() do?
- 日本語 PyTorch – What does contiguous() do?
- हिन्दी PyTorch – What does contiguous() do?
Singapore | 2023-03-24
Thanks for explaining! I was stuck with PyTorch – What does contiguous() do? for some hours, finally got it done 🤗. I am just not quite sure it is the best method
Massachussetts | 2023-03-24
I was preparing for my coding interview, thanks for clarifying this - PyTorch – What does contiguous() do? in Python is not the simplest one. Will use it in my bachelor thesis
New York | 2023-03-24
Simply put and clear. Thank you for sharing. PyTorch – What does contiguous() do? and other issues with io Python module was always my weak point 😁. Checked yesterday, it works!