Hi,

`x`

is a `torch.Tensor`

and I define `c=x.size(1)`

.

I found that there are two possible types of `c`

:

`<class 'torch.Tensor'>`

`<class 'int'>`

How can I get my desired type `<class 'int'>`

rather than `<class 'torch.Tensor'>`

?

Hi,

`x`

is a `torch.Tensor`

and I define `c=x.size(1)`

.

I found that there are two possible types of `c`

:

`<class 'torch.Tensor'>`

`<class 'int'>`

How can I get my desired type `<class 'int'>`

rather than `<class 'torch.Tensor'>`

?

if

```
x = torch.randn(5, 5)
```

then

```
type(x.size(1))
```

would return int, how do you get torch.Tensor?

Thank you for your reply, but I do get the torch.Tensor.

Here is part of my code:

```
def forward(self, x):
# Explicitly forward every layer.
# Branch2a.
in_channel = x.size(1)
l_size = list(x.size())
import torch
fake = torch.ones(3,4,5).cuda()
type(fake.size(2))
import pdb; pdb.set_trace()
```

it might be for x, for example,

```
class A(nn.Module):
def __init__(self):
super().__init__()
self.a = 10
def forward(self, x):
print('x type:', type(x))
# Explicitly forward every layer.
# Branch2a.
in_channel = x.size(1)
print('in_channel type:', type(in_channel))
l_size = list(x.size())
print('l_size type:', type(l_size))
import torch
fake = torch.ones(3,4,5).cuda()
print('fake type:', type(fake.size(2)))
# import pdb; pdb.set_trace()
return x
```

```
net = A()
net(torch.randn(1, 2, 3))
```

would return

```
x type: <class 'torch.Tensor'>
in_channel type: <class 'int'>
l_size type: <class 'list'>
fake type: <class 'int'>
tensor([[[-1.2244, -1.2652, -0.6877],
[ 1.5777, -1.5478, 1.1681]]])
```

Thanks very much for your kind reply.

After debugging, I found my problem is resulted from the fvcore.nn.flop_count.flop_count.

During the forward in above function, the type will be `<class 'torch.Tensor'>`