Comments (5)
Hi there, thanks a lot for catching this! Could you add a simple test input that gives you this failure? And is the shape
variable a list
, or a single int
? I don't immediately see why it would be a list
, since we make sure that it would be a np.array
here:
Line 100 in df2f1fc
from nir.
I just looked again and the input_shape
type is no int
nor list
nor tuple
it's a lovely torch.Size
type. I would have thought that type would get bundled with the Sequence
type in Line 91?
I think this comes from
Line 53 in df2f1fc
when padding == "same"
and there is no conversion to np.array([input_shape[i]])
from nir.
I made a PR to fix this, see #101, could you please confirm that it works for you now? Then I will merge it. Thanks again for your help!
from nir.
Hi, sadly, it's still no good.
Here's a minimal test
from nir.ir.graph import NIRGraph
from nir.ir.conv import Conv2d
from nir.ir.neuron import LI
import torch
def test_nir_conv2d_same():
# Create a NIR Network
conv_weights = torch.tensor([[[1.0, 1.0, 1.0], [1.0, 1.0, 1.0], [1.0, 1.0, 1.0]]])
li_tau = torch.tensor([0.9, 0.8])
li_r = torch.tensor([1.0, 1.0])
li_v_leak = torch.tensor([0.0, 0.0])
nir_network = NIRGraph.from_list(
Conv2d(
input_shape=torch.Size((3, 3)),
weight=conv_weights,
stride=1,
padding="same",
dilation=1,
groups=1,
bias=torch.tensor([0.0] * 9),
),
LI(li_tau, li_r, li_v_leak),
)
I think that's because _index_tuple
still returns a pure int
in
Lines 97 to 98 in df2f1fc
I don't know what the design phylosophy is here but I assume you could return a np.array([tuple[index]])
from nir.
Thank you so much for the insight @chanokin. You're indeed right that we should be returning a Numpy number. And there was an additional bug in that it assumed numpy types and not PyTorch arrays or the like. I expanded the function and added some tests to make sure it works.
Please don't hesitate to reopen if anything is broken. And ping us if you'd like a release. Otherwise, I'll wait a few weeks until the next exciting new features drop ;-)
from nir.
Related Issues (20)
- Notebook docs run with wrong dependencies
- Comparison of two nodes fails HOT 8
- black and docformatter conflict.
- Discrepancy between Readme and docs on supported projects HOT 4
- Misleading method name `from_list` HOT 8
- Unify version tag and automate release
- IR for SumPool2d
- Poor code design pattern for serializing/deserializing HOT 2
- Disambiguation input/output shapes HOT 5
- Conv2D misleading default input_type and output_type HOT 1
- Remove input_shape from Conv1d/2d
- Flatten input_type is not necessary HOT 2
- Suggestion: add input_type argument to nir.from_list
- infer_type fails with Tuple index out of range error. HOT 9
- meta-data in NIR nodes HOT 3
- LICENSE mismatch HOT 3
- Add AvgPool2D
- Backwards-compatibility of imports broken after refactoring HOT 1
- Remove notebooks and paper data from pypi release HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nir.