Quantcast
Channel: Active questions tagged react-native+typescript - Stack Overflow
Viewing all articles
Browse latest Browse all 6291

libtorch Conv1D doesn't operate over signal length dimension

$
0
0

I have a torch model, that simply contains a conv1d (intended to be used to implement a STFT fourier transform).The model works fine in torch, and traced using torch.jit.load in Python.

When I attempt to use the model on iOS with libtorch via typescript (https://www.npmjs.com/package/react-native-pytorch-core), I do not get the intended output.

The first output channel is correct (i.e. in this case it equals the first 2048 samples dot product with the convolution), but the remainder output channels, which should correspond with the kernel sliding along the signal (in time) are the same as the first one!)

In Python / torch...

import torchclass Model(torch.nn.Module):    def __init__(self):        n_fft = 2048        hop_length = 512        self.conv = torch.nn.Conv1d(in_channels=1, out_channels=n_fft // 2 + 1,            kernel_size=n_fft, stride=hop_length, padding=0, dilation=1,            groups=1, bias=False)    def forward(self, x):        return self.conv(x)model = Model();torch.jit.script(model)._save_for_lite_interpreter('model.ptl')

In inference, react native typescript

import { torch } from 'react-native-pytorch-core';let x = torch.linspace(0,1,96000).unsqueeze(0);model.forward(x).then((e) => {    console.log(e.shape) // this the correct shape [1, 184, 1025] [batch, time, bin]    let data = e.data();    data[0,0,0] == data[0,0,1] // this is false, as expected    data[0,0,0] == data[0,1,0] // this is true, for any time step. NOT expected, if the convolution kernel sliding is correct});

Viewing all articles
Browse latest Browse all 6291

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>