Comments (3)
Just my solution and if someone else faces this same issue! :) ^ I think this should work!
from pytorch-seq2seq.
Upon experimentation - it seems that -float(inf)
can actually cause a lot of NaN
loss issues! So - the safe way to go about this is to use -1e4
instead of -1e10
that ways it can still fit in the conversion range of 16-bit precision!
from pytorch-seq2seq.
Older versions of PyTorch (1.5 for instance) can actually show NaN when doing -float(inf)
but the newer ones are fine in my prelim experiment. However, based on updates in the Huggingface Transformer library and everything it seems having this static value of the minimum possible value is not the smart thing to do! Utilizing the change they proposed and are using (huggingface/transformers#17306) :
torch.finfo(self.dtype).min
where the self.dtype can be defined like float, float16
etc. Or it can be directly obtained from the type of a float tensor.
>>> tmp = torch.randn(3,5)
>>> tmp
tensor([[ 1.1179, 0.6827, 0.3662, 0.0312, -0.1084],
[ 0.0184, -0.5863, -2.4907, -0.6222, -0.5112],
[ 0.3818, 1.9543, -1.0868, -0.7464, 0.9879]])
>>> tmp.dtype
torch.float32
>>> torch.finfo(tmp.dtype).min
-3.4028234663852886e+38
from pytorch-seq2seq.
Related Issues (20)
- Thank you! HOT 1
- [Bug] Tranformer Seq2Seq Have Wrong Inputs! HOT 2
- Custom Text Dataset HOT 6
- Question
- torchtext recent version (0.12.0) doesn't support Field, BucketIterator HOT 4
- Question about how to resolve the out of vocabulary problem during encoding and decoding in tutorial 1
- Possible Inaccuracies in training script
- Tutorial 6: [Attention is All You need] Different output at different batch size during Inference
- Question about changing params init from xavier to kaiming
- Using pretrained BERT embedding
- Why using tanh function HOT 3
- How do you make this work on android?
- Notebook 1 <eos> problem. HOT 2
- no module named 'torchtext.legacy' HOT 2
- import
- possible opposite explanation of hidden compared to output in notebook #3
- Seq2seq: Input not matching Output (and big thanks)
- How to change seq2seq to graph2seq
- Incorrect German Translation
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 pytorch-seq2seq.