
Show HN: “Is this loss?”: A TensorFlow Lite app to detect Loss.jpg - _wzsf
I built this app over a week as a way to learn how to use TensorFlow with Mobilenets and to get some experience with Google Play (and partly as a dare). It&#x27;s written in Java, as I wasn&#x27;t able to find a Kotlin API for TFLite. It was built with Bazel.<p>I&#x27;m pretty satisfied with the actual detector&#x27;s performance, although I expect I could improve the UI a little bit.<p>It&#x27;s a weird UX, as you want it to be as simple and fast as possible (loss&#x2F;notloss) but you also want it to have some sort of recognizability. I would love to hear your thoughts.<p><a href="https:&#x2F;&#x2F;play.google.com&#x2F;store&#x2F;apps&#x2F;details?id=party.eigenloss.android.isthisloss" rel="nofollow">https:&#x2F;&#x2F;play.google.com&#x2F;store&#x2F;apps&#x2F;details?id=party.eigenlos...</a>
======
wufufufu
For anyone wondering what the "Is this loss?" meme is about, this provides
good context [http://nymag.com/selectall/2015/11/longest-running-
miscarria...](http://nymag.com/selectall/2015/11/longest-running-miscarriage-
meme-on-the-web.html)

------
lainga
Does it detect only Loss.png, or attempt to see other (disguised) instances of
the form

    
    
      |  ||
      || |_
    
    ?

~~~
eigenloss
Framed properly, it does detect what you posted:
[https://imgur.com/a/0wdqPea](https://imgur.com/a/0wdqPea). Positively
identifying abstract geometric loss while rejecting non-loss text and drawings
was something I had to explicitly optimize the training sets for.

~~~
lainga
NEAT. I rate this (1/2) / (2/50).

------
tyrust
Give your model to a reddit bot and let it loose on /r/me_irl.

~~~
eigenloss
Not a bad idea. The "not loss" training set actually contains a few hundred
images scraped from there.

There are plenty of subreddits and online forums where a single-purpose
lightweight CNN like this one could be enormously productive. It would
obviously need a small backend somewhere, but the hardware requirements are
minimal.

~~~
rrcaptain
I mean, I wouldn't call this productive. But fun and useful most definitely.

~~~
eigenloss
Obviously, loss/not loss isn't a genuinely useful classification.

Something to automatically help users identify forum-specific images (e.g.
poisonous/harmless spiders, bedbugs/beetles, snakes, etc.) would be useful,
and the network would be the same.

------
gowld
In other words, eignloss says "I just gamed The Loss"

(
[https://en.wikipedia.org/wiki/The_Game_(mind_game)](https://en.wikipedia.org/wiki/The_Game_\(mind_game\))
)

------
mynegation
I had to lookup the backstory. I obviously cannot know all of the context,
but... honest question: why would people make fun of a comic about such deeply
personal tragedy? To me it seems tone-deaf to say the least.

~~~
geofft
Because they're making fun of a _comic_ , not out of a personal tragedy: it
was a gag-a-day comic strip about video games with limited plot, and giving
the characters a deeply personal tragedy was extremely out of character for
the comic strip.

Plenty of people make fun of webcomics that developed a serious plot and
actual characterization over time (MegaTokyo and Questionable Content both
come to mind). This one went from 0-100 in one strip.

~~~
sneak
Calling QC “serious characterization” is a huge stretch. JJ appears to
basically only know how to write characters that have the same crippling
anxiety that he does. It’s maddening to read.

~~~
geofft
I'm not commenting on whether it's _good_ characterization (although I do non-
ironically enjoy reading QC personally), just that it's a marked departure
from the esrly days of the strip when there was no attempt at giving the
characters any more characterization than requires for the short-term jokes.
Regardless of how good he is at it, the author is certainly being consistent
about writing a long-term plot that is isn't just a bunch of gags and about
giving the characters meaningful backstories and personalities beyond "likes
indie rock."

------
wrinkl3
I audibly groaned when I read the title, but it's certainly a neat app. Do you
plan to post the source code or a detailed training model description?

~~~
eigenloss
Yes; I'll be doing one or both of the above shortly. There are tutorials
online for most of the process, but the non-Google-maintained ones are
generally very out of date. The app itself draws heavily from the TFLite Java
Demo App, which can be found at tensorflow.org.

For now, it's a placeholder with just a privacy policy, but the details will
be at eigenloss.party in a week or so.

------
Osseric
Best thing I've seen on Show HN in awhile.

------
YetAnotherNick
Too easy examples. Try on loss kanji vs non loss kanji ;)

------
mediocrejoker
Can someone explain what Loss.jpg is? I've never heard of it and pretty much
none of the comments here make sense as a result.

~~~
evanpw
[http://knowyourmeme.com/news/heres-to-loss-the-internets-
gre...](http://knowyourmeme.com/news/heres-to-loss-the-internets-greatest-
meme)

------
newen
This is pretty neat lol. I'm curious about what architecture you used, how
many images and what kind of augmentation you used.

~~~
eigenloss
Training was a bit of a process. The architecture I use now is an 8-bit
quantized mobilenet_v1_050_224 retrained on about 1000 versions of Loss.jpg
(some quite similar, but not exact duplicates) and about 10,000 other images.
All the images are 240x240 or thereabouts.

I'll be publishing something soon on what it took to build that 10K image
dataset - it was more challenging than I initially anticipated.

------
scottmf
Wow I was thinking of this exact idea just yesterday.

Could you share the code or make this a web app? I don’t have access to
Android.

~~~
eigenloss
A very similar demo is available on the Tensorflow website, and the sources
are available in the main TF repo. My sources will probably go public
eventually.

[https://www.tensorflow.org/mobile/tflite/demo_android](https://www.tensorflow.org/mobile/tflite/demo_android)

A web app could be done, but the use case and development process is somewhat
different. The TFLite API is also significantly more mature. Looking at this
TensorFlow.js demo might be helpful:

[https://github.com/google/emoji-scavenger-
hunt/](https://github.com/google/emoji-scavenger-hunt/)

Send me an email at the address in my profile if you do anything with it - I'd
be happy to help out with training!

------
alexfi
Do you want to make it open source? :)

~~~
eigenloss
Maybe. I don't see any reason not to!

Edit: I can't reply to any other comments at the moment due to low karma. In
response to wrinkl3 and others, I will likely be sharing more details about
the development process and network in the next week or two, probably at
eigenloss.party.

------
luc_
I don't think perpetuating a meme that, even inadvertently, belittles the
emotional hardness of a miscarriage, is the right thing to do.

Regardless of this meme originating from a comic going from 0 to 100 in the
level of seriousness it usually portrays, it is not something that we should
endorse.

~~~
legostormtroopr
Sadly the original post that went with it is lost to time, but Cyancide and
Happiness kept some of it.

We aren't making fun of miscarriage, but someones terrible poor attempt at
portraying it in a comic, along with a post that said miscarriage is "often
much harder on the woman than on the man" and that it "doesn't necessarily
turn you into a sad, depressed sack of tears". [1]

If you don't like it, as Tim B^Uckley says "move past it".

[1] [http://explosm.net/comics/1310/](http://explosm.net/comics/1310/)

Edit: I found the original, its longer and more insufferable than I ever
imagined - [https://cad-comic.com/so-then-lets-chat/](https://cad-
comic.com/so-then-lets-chat/)

