Comments (2)
The project was in pytorch from the very beginning, but when it came time to do a parser release I wasn't very happy with the tools that pytorch offered. In pytorch (as of version 0.4) you can't distribute models independently of the python code that was used to create them, which causes issues in that (a) the training code requires python 3.6+ and doesn't run on Windows (b) it's very disruptive for me to upgrade pytorch (or other library) versions while I'm actively working on a research project, but a release codebase needs to support new framework versions whenever they come out, and (c) Tensorflow has much better tools for model quantization/compression, which I use to keep model download sizes low.
The nice thing about Tensorflow is that you can compile your model into a computation graph and save the graph to disk, after which it can be loaded and used independently of the python code that created it. I had figured that forward compatibility would be better for the tensorflow on-disk format than for any python code I write. I also tried my best to make sure that the release code runs across a wide range of environments, including Python 2.
At one point I also wanted to write release bindings for languages other than Python, but I never got around to doing that.
from self-attentive-parser.
Thank you for the elaborate reply!
Many projects are switching to support >=3.6, and Python 2.x support is being dropped everywhere. Official support ends on January 1st, anyway. This is a good website to get an idea of who's dropping support (spoiler: almost all major packages). I don't think that making your project depend on 3.6 or later is a bad idea - perhaps work towards it for a new release at the end of this year? It will save you a lot of compatibility head aches, I'm sure!
I'm not sure why PyTorch models won't run on Windows. I've been using pretrained models since 0.4.1 and it works fine. It's true that models might not be as small as the TF computation graphs, but one could argue that that shouldn't be too big an issue. The model is only downloaded once. Using computation graphs vs. model states is a discussion that has a lot of pros and cons on both sides. I see that in the field of NLP, many implementations have moved to PyTorch >= 1.0.
All this to say that I understand and of course respect your decision. Thank you again for this package!
from self-attentive-parser.
Related Issues (20)
- How are F1 scores calculated? HOT 1
- what version of protobuf is suitable for this tool? HOT 1
- import benepar fails with torch error
- Error loading German model HOT 4
- Need help understanding the labels of the parser model
- Error reading EVALB results.
- Spacy and Berkeley parser Multi-processing HOT 3
- How to train a benepar on Ontonotes 5.0 (CONLL 2012) dataset?
- Different in parse results compared to the demo page HOT 3
- benepar_en2
- Parse quality on long sentences
- ```._.labels``` doesn't work for spans with length of one HOT 4
- Serializing the output
- Sentences with ; not split into different clauses
- Mark as unmaintained? HOT 2
- training data for benepar_zh2
- Parse pretokenized sentences?
- Cannot generate WSJ data HOT 1
- How to solve the unresognized model identifier
- The name of the benepar models (at least for french) are not updated.
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 self-attentive-parser.