-
Notifications
You must be signed in to change notification settings - Fork 79
non-classifier case in coremltools4.0+ #581
Comments
Just don't provide the |
This is the complete error. |
I run the whole thing on colab. |
Hi, have you ever encountered this situation?
[image: image]
<https://user-images.githubusercontent.com/30463291/86051128-d90cd880-ba4c-11ea-88aa-c3038dafa5d6.png>
One day ago, I convert my pytorch model to onnx. It works well. But now I
use your tool to do the conversion directly. It seems not good.
This is the complete error.
TypeError: Input strides has type <class
'coremltools.converters.mil.mil.types.type_tensor.tensor..tensor'> not
compatible with expected type IntTensorInputType
it works well until the 7-th part
[image: image]
<https://user-images.githubusercontent.com/30463291/86051706-be872f00-ba4d-11ea-9354-b908148d270e.png>
…On Mon, 29 Jun 2020 at 21:03, Aseem Wadhwa ***@***.***> wrote:
Just don't provide the classifier_config argument to the ct.convert call,
as shown here
<https://coremltools.readme.io/docs/unified-conversion-api#conversion-from-pytorch>
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#581 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AHINKO6DHUZADM3JUWXVDR3RZDXRPANCNFSM4OLRJ5WA>
.
|
@HuangGuanbin can you please provide the pytorch model, which can reproduce this error? Otherwise its hard to debug the error. |
no problem. I will do it right now. Give me a second.
…On Mon, Jun 29, 2020 at 11:23 PM Aseem Wadhwa ***@***.***> wrote:
@HuangGuanbin <https://github.com/huangguanbin> can you please provide
the pytorch model, which can reproduce this error? Otherwise its hard to
debug the error.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#581 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AHINKO26V5E5WAGMSM5RQ23RZEH63ANCNFSM4OLRJ5WA>
.
|
https://colab.research.google.com/drive/1hfv_Qbl6ZHDbXq_HB9bo3tV89KM7Skoq?usp=sharing
This is the notebook where you can reproduce the bug.
And you can download the pytorch model by clicking the shared link. It
contains a zip file.
https://drive.google.com/file/d/1etvQPPGlr4YxBEsCgOeduicErYN18BLg/view?usp=sharing
All you need to do is just go through the notebook. Make sure the zip file
is in the /content folder. The checkpoint(aka the pytorch model itself) is
in the /AlignedReID-master/util/log if you need to access it.
…On Mon, Jun 29, 2020 at 11:24 PM 黄冠斌 ***@***.***> wrote:
no problem. I will do it right now. Give me a second.
On Mon, Jun 29, 2020 at 11:23 PM Aseem Wadhwa ***@***.***>
wrote:
> @HuangGuanbin <https://github.com/huangguanbin> can you please provide
> the pytorch model, which can reproduce this error? Otherwise its hard to
> debug the error.
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> <#581 (comment)>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/AHINKO26V5E5WAGMSM5RQ23RZEH63ANCNFSM4OLRJ5WA>
> .
>
|
If you encountered any issue to run my code, plz let me know ASAP. I will reply to you on time. |
The colab is not accessible... |
Is the zip accessible "*?*
…On Mon, 29 Jun 2020 at 23:52, Aseem Wadhwa ***@***.***> wrote:
The colab is not accessible...
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#581 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AHINKOZJCTOK4TH6Z3O5AVLRZELKBANCNFSM4OLRJ5WA>
.
|
… On Mon, Jun 29, 2020 at 11:52 PM 黄冠斌 ***@***.***> wrote:
Is the zip accessible "*?*
On Mon, 29 Jun 2020 at 23:52, Aseem Wadhwa ***@***.***>
wrote:
> The colab is not accessible...
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> <#581 (comment)>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/AHINKOZJCTOK4TH6Z3O5AVLRZELKBANCNFSM4OLRJ5WA>
> .
>
|
if it is not accessible again, copy the code below onto colab.
!unzip AlignedReID-master.zip
!pip install coremltools==4.0b1
%cd AlignedReID-master/
import torch
from util.FeatureExtractor import FeatureExtractor
from torchvision import transforms
from IPython import embed
import models
from scipy.spatial.distance import cosine, euclidean
from util.utils import *
from sklearn.preprocessing import normalize
def pool2d(tensor, type= 'max'):
sz = tensor.size()
if type == 'max':
x = torch.nn.functional.max_pool2d(tensor, kernel_size=(int(sz[2]/8
), sz[3]))
if type == 'mean':
x = torch.nn.functional.mean_pool2d(tensor, kernel_size=(int(sz[2]/8
), sz[3]))
x = x[0].cpu().data.numpy()
x = np.transpose(x,(2,1,0))[0]
return x
if __name__ == '__main__':
os.environ['CUDA_VISIBLE_DEVICES'] = "0"
use_gpu = torch.cuda.is_available()
if torch.cuda.is_available():
map_location = lambda storage, loc: storage.cuda()
else:
map_location = 'cpu'
model = models.init_model(name='resnet50', num_classes=751, loss={
'softmax', 'metric'}, use_gpu=use_gpu,aligned=True)
checkpoint = torch.load(
"/content/AlignedReID-master/util/log/checkpoint_ep300.pth.tar"
, map_location=map_location)
model.load_state_dict(checkpoint['state_dict'])
model.eval()
# Trace with random data
example_input = torch.rand(1, 3, 256,128)
traced_model = torch.jit.trace(model, example_input)
traced_model.save("reid.pt")
import coremltools as ct
# Convert the saved PyTorch model to Core ML
mlmodel = ct.convert("reid.pt",
inputs=[ct.TensorType(shape=(1, 3, 256, 128))])
…On Mon, Jun 29, 2020 at 11:54 PM 黄冠斌 ***@***.***> wrote:
https://colab.research.google.com/drive/1hfv_Qbl6ZHDbXq_HB9bo3tV89KM7Skoq?usp=sharing
try this one.
On Mon, Jun 29, 2020 at 11:52 PM 黄冠斌 ***@***.***> wrote:
> Is the zip accessible "*?*
>
>
> On Mon, 29 Jun 2020 at 23:52, Aseem Wadhwa ***@***.***>
> wrote:
>
>> The colab is not accessible...
>>
>> —
>> You are receiving this because you were mentioned.
>> Reply to this email directly, view it on GitHub
>> <#581 (comment)>,
>> or unsubscribe
>> <https://github.com/notifications/unsubscribe-auth/AHINKOZJCTOK4TH6Z3O5AVLRZELKBANCNFSM4OLRJ5WA>
>> .
>>
>
|
I changed the link of zip file by mistake. If you want to download it again. use this one. https://drive.google.com/file/d/1ufh5kndXMdWfKPRT85dDtEwhZ1MXnPg7/view?usp=sharing |
I would appreciate it if you can also check how precise the conversion is.
Because some say conversion leads to loss of precision. That means given
same input matrix but get different output matrix. THANK YOU!!
…On Mon, Jun 29, 2020 at 11:55 PM 黄冠斌 ***@***.***> wrote:
if it is not accessible again, copy the code below onto colab.
!unzip AlignedReID-master.zip
!pip install coremltools==4.0b1
%cd AlignedReID-master/
import torch
from util.FeatureExtractor import FeatureExtractor
from torchvision import transforms
from IPython import embed
import models
from scipy.spatial.distance import cosine, euclidean
from util.utils import *
from sklearn.preprocessing import normalize
def pool2d(tensor, type= 'max'):
sz = tensor.size()
if type == 'max':
x = torch.nn.functional.max_pool2d(tensor, kernel_size=(int(sz[2]/8
), sz[3]))
if type == 'mean':
x = torch.nn.functional.mean_pool2d(tensor, kernel_size=(int(sz[2]/8
), sz[3]))
x = x[0].cpu().data.numpy()
x = np.transpose(x,(2,1,0))[0]
return x
if __name__ == '__main__':
os.environ['CUDA_VISIBLE_DEVICES'] = "0"
use_gpu = torch.cuda.is_available()
if torch.cuda.is_available():
map_location = lambda storage, loc: storage.cuda()
else:
map_location = 'cpu'
model = models.init_model(name='resnet50', num_classes=751, loss={
'softmax', 'metric'}, use_gpu=use_gpu,aligned=True)
checkpoint = torch.load(
"/content/AlignedReID-master/util/log/checkpoint_ep300.pth.tar"
, map_location=map_location)
model.load_state_dict(checkpoint['state_dict'])
model.eval()
# Trace with random data
example_input = torch.rand(1, 3, 256,128)
traced_model = torch.jit.trace(model, example_input)
traced_model.save("reid.pt")
import coremltools as ct
# Convert the saved PyTorch model to Core ML
mlmodel = ct.convert("reid.pt",
inputs=[ct.TensorType(shape=(1, 3, 256, 128))])
On Mon, Jun 29, 2020 at 11:54 PM 黄冠斌 ***@***.***> wrote:
>
> https://colab.research.google.com/drive/1hfv_Qbl6ZHDbXq_HB9bo3tV89KM7Skoq?usp=sharing
> try this one.
>
> On Mon, Jun 29, 2020 at 11:52 PM 黄冠斌 ***@***.***> wrote:
>
>> Is the zip accessible "*?*
>>
>>
>> On Mon, 29 Jun 2020 at 23:52, Aseem Wadhwa ***@***.***>
>> wrote:
>>
>>> The colab is not accessible...
>>>
>>> —
>>> You are receiving this because you were mentioned.
>>> Reply to this email directly, view it on GitHub
>>> <#581 (comment)>,
>>> or unsubscribe
>>> <https://github.com/notifications/unsubscribe-auth/AHINKOZJCTOK4TH6Z3O5AVLRZELKBANCNFSM4OLRJ5WA>
>>> .
>>>
>>
|
Any progress on this?
…On Tue, 30 Jun 2020 at 01:13, 黄冠斌 ***@***.***> wrote:
I would appreciate it if you can also check how precise the conversion is.
Because some say conversion leads to loss of precision. That means given
same input matrix but get different output matrix. THANK YOU!!
On Mon, Jun 29, 2020 at 11:55 PM 黄冠斌 ***@***.***> wrote:
> if it is not accessible again, copy the code below onto colab.
>
> !unzip AlignedReID-master.zip
> !pip install coremltools==4.0b1
>
>
>
> %cd AlignedReID-master/
>
>
>
> import torch
> from util.FeatureExtractor import FeatureExtractor
> from torchvision import transforms
> from IPython import embed
> import models
> from scipy.spatial.distance import cosine, euclidean
> from util.utils import *
> from sklearn.preprocessing import normalize
>
> def pool2d(tensor, type= 'max'):
> sz = tensor.size()
> if type == 'max':
> x = torch.nn.functional.max_pool2d(tensor, kernel_size=(int(sz[2]/8
> ), sz[3]))
> if type == 'mean':
> x = torch.nn.functional.mean_pool2d(tensor, kernel_size=(int(sz[2]/
> 8), sz[3]))
> x = x[0].cpu().data.numpy()
> x = np.transpose(x,(2,1,0))[0]
> return x
>
> if __name__ == '__main__':
> os.environ['CUDA_VISIBLE_DEVICES'] = "0"
> use_gpu = torch.cuda.is_available()
> if torch.cuda.is_available():
> map_location = lambda storage, loc: storage.cuda()
> else:
> map_location = 'cpu'
>
> model = models.init_model(name='resnet50', num_classes=751, loss={
> 'softmax', 'metric'}, use_gpu=use_gpu,aligned=True)
>
> checkpoint = torch.load(
> "/content/AlignedReID-master/util/log/checkpoint_ep300.pth.tar"
> , map_location=map_location)
> model.load_state_dict(checkpoint['state_dict'])
>
> model.eval()
>
> # Trace with random data
> example_input = torch.rand(1, 3, 256,128)
> traced_model = torch.jit.trace(model, example_input)
>
> traced_model.save("reid.pt")
> import coremltools as ct
> # Convert the saved PyTorch model to Core ML
> mlmodel = ct.convert("reid.pt",
> inputs=[ct.TensorType(shape=(1, 3, 256, 128))])
>
>
> On Mon, Jun 29, 2020 at 11:54 PM 黄冠斌 ***@***.***> wrote:
>
>>
>> https://colab.research.google.com/drive/1hfv_Qbl6ZHDbXq_HB9bo3tV89KM7Skoq?usp=sharing
>> try this one.
>>
>> On Mon, Jun 29, 2020 at 11:52 PM 黄冠斌 ***@***.***> wrote:
>>
>>> Is the zip accessible "*?*
>>>
>>>
>>> On Mon, 29 Jun 2020 at 23:52, Aseem Wadhwa ***@***.***>
>>> wrote:
>>>
>>>> The colab is not accessible...
>>>>
>>>> —
>>>> You are receiving this because you were mentioned.
>>>> Reply to this email directly, view it on GitHub
>>>> <#581 (comment)>,
>>>> or unsubscribe
>>>> <https://github.com/notifications/unsubscribe-auth/AHINKOZJCTOK4TH6Z3O5AVLRZELKBANCNFSM4OLRJ5WA>
>>>> .
>>>>
>>>
|
I had the same issue (TypeError: Input strides has type <class |
any progress? |
i had same issue: |
Seems like the error message for type mismatch of input tensors is not very descriptive. |
@HuangGuanbin Can you please re-convert your model after incorporating this following change? Replace this line with following code snippet
|
Since this issue is not related to ONNX. For PyTorch related issues in the future, please use |
@HuangGuanbin This PR apple/coremltools#769 fixes the reported issue. Please verify if it solves your problem. |
This solves the issue for me. Thanks a lot. |
I tried what you said, but it is not working yet. |
I checked the latest notification. But I'm not sure what i should modify. |
❓Question
Is it possible to convert a pytorch model withtout classification layer into mlmodel? I don't know how to do it because in the example, I am asked to specify the label.
System Information
The text was updated successfully, but these errors were encountered: