DEV Community

Super Kai (Kazuya Ito)
Super Kai (Kazuya Ito)

Posted on

linspace in PyTorch

Buy Me a Coffee

*Memos:

linspace() can create the 1D tensor of the zero or more integers, floating-point numbers or complex numbers evenly spaced between start and end(start<=x<=end) as shown below:

*Memos:

  • linspace() can be used with torch but not with a tensor.
  • The 1st argument with torch is start(Required-Type:int, float, complex or bool). *The 0D tensor of int, float, complex or bool also works.
  • The 2nd argument with torch is end(Required-Type:int, float, complex or bool). *The 0D tensor of int, float, complex or bool also works.
  • The 3rd argument with torch is steps(Required-Type:int): *Memos:
    • It must be greater than or equal to 0.
    • The 0D tensor of int also works.
  • There is dtype argument with torch(Optional-Default:None-Type:dtype): *Memos:
    • If it's None, it's inferred from start, end or step, then for floating-point numbers, get_default_dtype() is used. *My post explains get_default_dtype() and set_default_dtype().
    • Setting start and end of integer type is not enough to create the 1D tensor of integer type so integer type with dtype must be set.
    • dtype= must be used.
    • My post explains dtype argument.
  • There is device argument with torch(Optional-Default:None-Type:str, int or device()): *Memos:
  • There is requires_grad argument with torch(Optional-Default:False-Type:bool): *Memos:
    • requires_grad= must be used.
    • My post explains requires_grad argument.
  • There is out argument with torch(Optional-Default:None-Type:tensor): *Memos:
    • out= must be used.
    • My post explains out argument.
import torch torch.linspace(start=10, end=20, steps=0) torch.linspace(start=20, end=10, steps=0) # tensor([])  torch.linspace(start=10., end=20., steps=1) tensor([10.]) torch.linspace(start=20, end=10, steps=1) # tensor([20.])  torch.linspace(start=10., end=20., steps=2) # tensor([10., 20.])  torch.linspace(start=20, end=10, steps=2) # tensor([20., 10.])  torch.linspace(start=10., end=20., steps=3) # tensor([10., 15., 20.])  torch.linspace(start=20, end=10, steps=3) # tensor([20., 15., 10.])  torch.linspace(start=10., end=20., steps=4) # tensor([10.0000, 13.3333, 16.6667, 20.0000])  torch.linspace(start=20., end=10., steps=4) # tensor([20.0000, 16.6667, 13.3333, 10.0000])  torch.linspace(start=10, end=20, steps=4, dtype=torch.int64) torch.linspace(start=torch.tensor(10), end=torch.tensor(20), steps=torch.tensor(4), dtype=torch.int64) # tensor([10.0000, 13.3333, 16.6667, 20.0000])  torch.linspace(start=10.+6.j, end=20.+3.j, steps=4) torch.linspace(start=torch.tensor(10.+6.j), end=torch.tensor(20.+3.j), steps=torch.tensor(4)) # tensor([10.0000+6.j, 13.3333+5.j, 16.6667+4.j, 20.0000+3.j])  torch.linspace(start=False, end=True, steps=4) torch.linspace(start=torch.tensor(True), end=torch.tensor(False), steps=torch.tensor(4)) # tensor([0.0000, 0.3333, 0.6667, 1.0000])  torch.linspace(start=10, end=20, steps=4, dtype=torch.int64) torch.linspace(start=torch.tensor(10), end=torch.tensor(20), steps=torch.tensor(4), dtype=torch.int64) # tensor([10.0000, 13.3333, 16.6667, 20.0000]) 
Enter fullscreen mode Exit fullscreen mode

Top comments (0)