My understanding of neural networks is that there are no remnants of the original inside it. The training data is used to back propagate a bunch of weights.
Your brain works like those neural network neurons; they learn when to fire, but they don’t know the intricate detail like a photo. Hence why many claim eyewitness testimony is bogus.
I'm not an expert, but in my experience working with CUDA/OpenCL/OpenGL, GPU latency usually comes down to data transfer and reduction operations (like max or sum). If you are okay with some kind of double-buffering, you can usually "hide" those latencies.
Can you suggest where those artifacts should be stored?
I often have projects that require third party libraries, and perhaps I change or upgrade the version of the library I use during the history of my project. I would like to have everything versioned together so if I check out a certain commit, I know that everything will work.
The downside of this is that my git repo will get bloated over time if I keep changing large dlls. I've sometimes made submodules to mitigate this problem. Git lfs also seemed like a good solution, but your comment makes me feel like I'm doing something bad here...
You could use a private feed to a package manager that supports arbitrary ZIP packages. You can (ab)use most package managers this way (npm, NuGet, Maven, etc). Azure DevOps Artifacts also has a very simple, dumb "Universal Package" manager that just attaches a version number to a ZIP file and really doesn't care what is inside it.
Then you just use the usual sorts of package management tools (including locks) to keep everything versioned together.
> Can you suggest where those artifacts should be stored?
It depends on where you get them. If you're using a compiled object that you get from a 3rd party and you don't have the source or don't build them then I'm not sure what to tell you. You're at the mercy of your vendor anyway so my other arguments against it won't make a difference.
You need to also count "points at infinity" in the "projective" plane. So the "projectivized" equations are actually X^2 + Y^2 = 1Z, and X^2 + Y^2 = 4Z. The intuition is similar to how 2 parallel lines will meet at the horizion (infinity).
If the bug were truly mathematical, he would notice the curvature of S^1 and S^2 without walking around (since curvature is defined at each point), but that is obviously very pedantic of me and shows why I wouldn't write an article nearly as interesting as this one.
I was thinking of the Riemann curvature tensor which is just some measure of curvature at each point. If the bug were at some point of S^2 he would notice the curvature.
Of course, this is assuming S^2 is getting its geometry from a certain embedding into R^3 that comes to mind. You could define different Riemann curvature tensors over S^2 that may have zero curvature in certain places, like squishing a balloon against a flat table for example.
I guess my point was that topology and curvature are different things (like you pointed out with your comment about RP^2), and saying that "a sphere looks flat locally" is missing the point!
Also, it didn't occur to me that this notion of curvature doesn't make sense in 1d, i.e. for S^1 like you said.
Not only is there no intrinsic curvature in 1D, but the 2D and 3D versions are also simplified special cases.
In 2D there is only scalar curvature, i.e. you don't need the whole Riemann tensor, just one number (at a given point).
In 3D you need the Ricci tensor, but still not the full curvature tensor. This is still much simpler, for instance IIRC this is why you cannot have gravitational waves in 3 (meaning 2+1) dimensional spacetime. In 4D you get the full complication.