Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make a demo video #42

Open
chrisranderson opened this issue Aug 3, 2017 · 23 comments
Open

Make a demo video #42

chrisranderson opened this issue Aug 3, 2017 · 23 comments

Comments

@chrisranderson
Copy link
Owner

@jart @wchargin: I'm almost there - I almost had it ready today, but I'm not very good with video editing software, so I'll have to give editing another go. I might not finish today, but definitely will be done by tomorrow.

@wchargin
Copy link

wchargin commented Aug 3, 2017

Great! Thanks for the update.

@chrisranderson
Copy link
Owner Author

chrisranderson commented Aug 4, 2017

Okay, here it is (5 minutes 44 seconds): https://www.youtube.com/watch?v=06HjEr0OX5k. Viewing in 1080p makes the text look good.

I'm not particularly proud of it, but I'm also not sure I want to spend a lot more time on it.

@chrisranderson
Copy link
Owner Author

I'm also a bit worried about people cloning it right now. I'm having an issue with tf.contrib.util.make_ndarray... it seems buggy. It takes forever the first time after TensorBoard is started. I timed it at 110 seconds, and then it's fine afterward at less than a millisecond.

@wchargin
Copy link

wchargin commented Aug 4, 2017

I'll take a look at the video now! :-)

110 seconds to make_ndarray‽ That is certainly not expected. It takes half a second for me to convert a 10000×10000 TensorProto to a numpy array using tf.make_ndarray (you don't need to use contrib, by the way). Can you reproduce this

What data type and size is the tensor that you're trying to convert to an ndarray? I know that make_ndarray sometimes has issues with string tensors, but those shouldn't cause performance problems.

@chrisranderson
Copy link
Owner Author

Here is the issue with more information: tensorflow/tensorflow#12043

tensor_proto dtype: DT_UINT8
tensor_shape {
  dim {
    size: 1059
  }
  dim {
    size: 768
  }
}

@wchargin
Copy link

wchargin commented Aug 4, 2017

Easy fix in other thread.

@chrisranderson
Copy link
Owner Author

@jart @wchargin As people try it out, can you let me know how many and how it goes? I'm about to the point where I'd feel comfortable posting it somewhere, but I'd like to roll it out pretty slowly in case something goes wrong.

@jart
Copy link
Contributor

jart commented Aug 4, 2017

@chrisranderson Thank you for making the video! I will start sharing this with people on the Brain team on Monday.

@chrisranderson
Copy link
Owner Author

@jart thank you! Any feedback would be much appreciated.

@chrisranderson
Copy link
Owner Author

chrisranderson commented Aug 7, 2017

I made a change that tries to detect convolutional activations and visualize them appropriately. Here's an example, which I think is pretty cool. You might have to download the 14.3 MB image to get a good look. Here are VGG activations on a bird dataset: https://github.com/chrisranderson/beholder/blob/master/readme-images/convolutional-activations.png

@wchargin
Copy link

wchargin commented Aug 7, 2017

Very cool.

Dumb question: the script looks like it's running on MNIST data, but I can swear that I see a bunch of bird-detecting neurons, and I don't see any digits…

Birds at (1951, 256)

Birds at (256, 192)

…am I missing something?

One more question: you include arrays=activations + […] where activations includes image_shaped_input, but the PNG that you attached doesn't seem to have any image input at the top (of either birds/flowers or digits). Is that just cropped out?

@chrisranderson
Copy link
Owner Author

chrisranderson commented Aug 7, 2017

Although it would be pretty awesome if VGG used birds as an intermediate representation for handwritten digits, that image is from a run on a totally different network that I don't have code for in the repo. :) Sorry about the confusion.

Here's an example from the demo script in the repo:
image

@wchargin
Copy link

wchargin commented Aug 7, 2017

This resolves my confusion. Thanks. :-)

@jart
Copy link
Contributor

jart commented Aug 15, 2017

Now that we've established there's strong support for merging Beholder, you are guaranteed to have a large user base when all is said and done. The only question now is, how famous do you want to be?

If you want to go viral, here's the narrative I would propose for a new video:

  1. Add the magma color map and make the frame rate as high as you possibly can, to optimize fabulousness.

  2. Might make you cringe, but it would capture attention if you said something like: Beholder gives you a live stream into your neural network. It shows you what TensorFlow is thinking in real time. Say this in the first five seconds. Then append some talking points about how neural networks are mysterious, and that even the best researchers in the world sometimes feel like they don't understand what's going on inside them; but thankfully, Beholder provides much-needed transparency that helps everyone see the big picture. Be as 100 IQ as possible in this intro segment.

  3. Then say, "To demonstrate, here's a thirty (or sixty) second time-lapse of TensorFlow learning how to recognize handwritten digits." I would also recommend kludging an accuracy scalar plot into the bottom left corner, which would greatly increase the emotional and informative appeal of the time lapse. Narrate the time lapse using a layman explanation that has some big words sprinkled in, e.g. convolutional layer.

  4. Now go full technical, show code, and basically do all the things your current video does.

My thinking is basically that, in order for your video to go viral on social media, it needs to be emotionally relatable to media people.

@jart
Copy link
Contributor

jart commented Aug 15, 2017

I also want to mention that there's actually a good chance that the media content you already created will get a lot of traction. My suggestions are merely something that I think will help it get even more.

@chrisranderson
Copy link
Owner Author

How famous do you want to be?

Let's see, Justin Bieber has 99.1 million followers on Twitter, so whatever it takes to get to more than that. :)

My vote is: let's use whatever marketing potential there is in this code for the benefit of TensorBoard, and keep things on the down low until it is finally released as a part of TensorBoard itself. I think it might be interesting to share it with an outside-of-Google audience for beta testing, though.

Do you think someone at Google could make use of your ideas in a TensorBoard video?

@jart
Copy link
Contributor

jart commented Aug 15, 2017

That's very gracious of you. I do believe TensorBoard and its users come first. I also believe our contributors who make TensorBoard better for them deserve to be as successful as possible. So I'm happy to play this however you want. So I guess we can put those ideas on the shelf for a video in the future.

With that said, would you like me to ask our people to tweet and promote your existing video tomorrow?

@chrisranderson
Copy link
Owner Author

If you'd like to, that's fine. I'm a bit worried about it being fragile. I've never tried it on OS X or Windows, and I have noticed a bug that requires me to refresh the page, relating to stopping and restarting training or something. I'm headed on vacation Wednesday so my time to put out fires will be limited.

@jart
Copy link
Contributor

jart commented Aug 15, 2017

I wouldn't stress out about it. Remember that this would be a beta announcement, it's not a production service, and it's open source. The expectations are not high. However it does say good things that you're holding yourself to high standards regardless.

However, be sure to check that anyone who sends you a pull request has signed Google's CLA before merging. Even if it's a single line. Otherwise we're going to have track them down later, or redo their changes.

@jart
Copy link
Contributor

jart commented Aug 15, 2017

Hey do you have a twitter account? What's the name?

@chrisranderson
Copy link
Owner Author

chrisranderson commented Aug 15, 2017 via email

@chrisranderson
Copy link
Owner Author

chrisranderson commented Aug 15, 2017 via email

@jart
Copy link
Contributor

jart commented Aug 15, 2017

Great. I requested a tweet between 9 and 12 a.m. PST tomorrow. You should be mentioned.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants