Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Jo
Jan 24, 2005

:allears:
Soiled Meat

Nippashish posted:

I'd call it "drive by comments" rather than "endless support", but thanks :) It seems like it's working a lot better now than last time you posted too, what ended up fixing it?

Surprisingly, switching my optimizer from ADAM to SGD made a huge difference. I didn't really touch network structure. Would love to be able to go back to it, since I'm still occasionally running into numerical problems (nans on long runs), but at least it's covering and making representations that are sensible.

Adbot
ADBOT LOVES YOU

hendersa
Sep 17, 2006

It has been quite a while since I've posted anything about all of the various odds and ends that I've been working on. I've actually been cleaning up the Beagle Entertainment System codebase quite a bit over the past few weeks... mostly bringing in C++ features to simplify the code. Things like changing char * and char[] to std::string and replacing linked lists with std::vector. I also reworked the internal caching on the GUI front-end so that all of the menu options and information aren't pre-rendered at start. They will dynamically render the panels and menu items as needed and cache them only as long as they are needed. This will allow a much larger number of games to be added to the system.

Speaking of adding games, I'm doing away with the FAT partition for holding and configuration game ROMs. The user used to have to take the microSD card, insert it into a Window/Linux PC, copy ROMs into the right places, and edit XML files to add those games to the front-end GUI and configure the button mapping of their controllers. I've moved to a sqlite3 database to do away with the XML edits. But, I needed to give the user some way to add/remove ROMs, edit game entries, and configure controllers. I thought about this for a bit, and I finally decided to add a web-based interface.

The BeagleBone Black can be powered via a USB cable connected directly to your PC, and it will treat the USB cable as a network cable. This means that your host machine (the PC the BBB is plugged into) can browse to a particular local IP address and reach a web server running on the BBB. You can literally plug the BBB into your PC, open a web browser on the PC, browse to the BBB's IP, and start configuring BES. I'm using Node.js on the BBB side, which serves up some jQuery-based pages to the browser.

Add/Remove ROMs page (with disk space usage):


Edit ROM entry page (complete with menu entry and info entry previews using HTML5 canvases):


Controller configuration page:


I didn't know web development with Node.js and jQuery two weeks ago, but I know a lot about it now! :eng101:

In other news:

- I got married! And I now have a nine year old step-daughter! They're both awesome.
- I got a new dog! It's a Corgi, and she's awesome.
- O'Reilly Media contacted me about doing a video tutorial series on the BBB for their portal!
- I may actually finish my PhD soon!
- I'm not dead!

Baby Nanny
Jan 4, 2007
ftw m8.
Made a neat little web based synth that can sync to your novation launchpad if you have one plugged in (and are using Chrome)



http://ell.github.io/grid/

Cool example: http://ell.github.io/grid/?state=ey...WUiOiItMTkifX0= (Warning: will play sounds)

Neurion
Jun 3, 2013

The musical fruit
The more you eat
The more you hoot

hendersa posted:

- I got married! And I now have a nine year old step-daughter! They're both awesome.
- I got a new dog! It's a Corgi, and she's awesome.

The best project: family life! Post screenshots!

hendersa
Sep 17, 2006

Neurion posted:

The best project: family life! Post screenshots!

You want 'em, you got 'em.

Family:


Dog:

https://www.youtube.com/watch?v=jVOvKdIOqaQ

Shalinor
Jun 10, 2002

Can I buy you a rootbeer?
This thread is now about posting pictures of your dogs a/o cats. Ideally pictures of them licking your ear/face adorably.

(you see, dogs are a thing you're working on, because you train them, so they're projects - and cats are an ongoing project in not strangling the cat when it barfs in your shoes)

Reality
Sep 26, 2010
Oh well in that case. Here is my cat giving me a five because I told him to.

He knows quite a few tricks, but is terribly afraid of heights so the cat tree I just bought is now a cat table.

I'm also working on a canvas-based image editor but it's not a fluffy animal that does tricks so people are generally less impressed by it.

hendersa
Sep 17, 2006

Shalinor posted:

This thread is now about posting pictures of your dogs a/o cats. Ideally pictures of them licking your ear/face adorably.

She's actually chewing on my ear in that picture, which is why I'm making a face like Popeye. The pup, while cute, is a newcomer to my development efforts. The real hero is the cat, who has been by my side through the entire process:

go play outside Skyler
Nov 7, 2005


Hey guys, I love pets and family as much as the other guy, but could we please keep it related to computer projects? (You know, screenshots of stuff we're working on)

I would hate to see a years old topic closed for derailing

kayakyakr
Feb 16, 2004

Kayak is true

Kid CUDA posted:

Hey guys, I love pets and family as much as the other guy, but could we please keep it related to computer projects? (You know, screenshots of stuff we're working on)

I would hate to see a years old topic closed for derailing

What if my dog is named SQL?

baka kaba
Jul 19, 2003

PLEASE ASK ME, THE SELF-PROFESSED NO #1 PAUL CATTERMOLE FAN IN THE SOMETHING AWFUL S-CLUB 7 MEGATHREAD, TO NAME A SINGLE SONG BY HIS EXCELLENT NU-METAL SIDE PROJECT, SKUA, AND IF I CAN'T PLEASE TELL ME TO
EAT SHIT

Do you ever find yourself shouting 'no SQL! Bad!'

hendersa
Sep 17, 2006

baka kaba posted:

Do you ever find yourself shouting 'no SQL! Bad!'

OK, you turkeys. You heard Kid CUDA. Get back to work. I blame Shalinor for being a bad influence.

The BES web interface is now up on GitHub: https://github.com/hendersa/bes-config-node

I also recently did some troubleshooting on the BES Cape PCB design (an SNES controller interfacing board with a built-in real-time clock) and finally made that available on GitHub, too: https://github.com/hendersa/bescape



That rendering was created online from the Gerber PCB files for the cape board using the Mayhew Labs 3D Gerber Viewer: http://mayhewlabs.com/3dpcb

Now I just need to finish the database support in the main BES binary. And still generate XML files for the stand-alone BeagleSNES emulator to use for configuration. And work on the firmware for the BES Cape board. And validate the generated PCBs with unit testing of each subsystem. And write a new manual.

Oh god there is still so much to do...

kayakyakr
Feb 16, 2004

Kayak is true

baka kaba posted:

Do you ever find yourself shouting 'no SQL! Bad!'

Yes. And also "SQL DROP the TABLE!"

Jewel
May 2, 2009

kayakyakr posted:

Yes. And also "SQL DROP the TABLE!"

I just thought of the words "SQLex DROP it hard" and: loving destroy me

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe

Jewel posted:

I just thought of the words "SQLex DROP it hard" and: loving destroy me

lol

Zaphod42
Sep 13, 2012

If there's anything more important than my ego around, I want it caught and shot now.

Kid CUDA posted:

Hey guys, I love pets and family as much as the other guy, but could we please keep it related to computer projects? (You know, screenshots of stuff we're working on)

I would hate to see a years old topic closed for derailing

You realize Shalinor is a mod right? :cheeky:

Shalinor
Jun 10, 2002

Can I buy you a rootbeer?

Zaphod42 posted:

You realize Shalinor is a mod right? :cheeky:
Not of this forum, though. :haw:

TECHNICALLY, I could be overridden if another mod pops in here and decided kitties and puppies are dumb.

But who would do that. I mean really.

(Seriously though it was meant as a short offshoot - please mostly get back to posting Cool poo poo)

Ethereal
Mar 8, 2003
Not much of a screenshot but I decided to spend a few evenings learning Rust. I've built my first program to solve the iOS game Wordbrain. It's multi-threaded and fairly optimized using Tries. Overall an amazing language, I'm so impressed with the fact that I haven't gotten any runtime errors thanks to the wonderful compiler and borrow checker.

Only registered members can see post attachments!

movax
Aug 30, 2008

Shalinor posted:

Not of this forum, though. :haw:

TECHNICALLY, I could be overridden if another mod pops in here and decided kitties and puppies are dumb.

But who would do that. I mean really.

(Seriously though it was meant as a short offshoot - please mostly get back to posting Cool poo poo)

If the occasional puppy pics (especially corgis) show up, I would be quite happy.

Nippashish
Nov 2, 2005

Let me see you dance!
I'm still trying to play chess with neural networks.

Hacker news found my site a couple weeks ago so I was able to record a few thousand games, and I decided to make a browser for them.

Its online here: http://spawk.fish/browse/.

Athas
Aug 6, 2007

fuck that joker
Made another fractal generator. This time I am trying to make a Buddhabrot, but it looks more like a dust bunny:



Source code here. My program isn't yet able to handle the large amount of samples it seems that you need for clear renderings.

Centripetal Horse
Nov 22, 2009

Fuck money, get GBS

This could have bought you a half a tank of gas, lmfao -
Love, gromdul

Athas posted:

Made another fractal generator. This time I am trying to make a Buddhabrot, but it looks more like a dust bunny:



Source code here. My program isn't yet able to handle the large amount of samples it seems that you need for clear renderings.

I am hereby publicly trademarking the term "Mendelbrot," which is a fractal that looks like a guy splicing cuttings from one plant onto another plant. Do not steal.

Chunjee
Oct 27, 2004

Nippashish posted:

I'm still trying to play chess with neural networks.

Hacker news found my site a couple weeks ago so I was able to record a few thousand games, and I decided to make a browser for them.

Its online here: http://spawk.fish/browse/.

That is awesome. Out of curiosity did anyone manage to win? I haven't played any full games because it goes south very quickly.

cliffy
Apr 12, 2002

Chunjee posted:

That is awesome. Out of curiosity did anyone manage to win? I haven't played any full games because it goes south very quickly.

I just won a game. I made some blatantly obvious errors and so did spawkfish. I wouldn't consider myself a very strong player, probably 1500-1600 elo range.

Will Styles
Jan 19, 2005

Chunjee posted:

That is awesome. Out of curiosity did anyone manage to win? I haven't played any full games because it goes south very quickly.

I've played twice and won both times.

Nippashish
Nov 2, 2005

Let me see you dance!

Chunjee posted:

That is awesome. Out of curiosity did anyone manage to win? I haven't played any full games because it goes south very quickly.

I'm pretty sure his main strength right now is in intimidating the hell out people in the opening, because he's got those down pretty solidly. If you just stick around then he will usually screw up badly at some point in the mid game and you can pick him apart from there pretty easily.

I've written way more words than you probably care about analyzing his strength here: http://spawk.fish/posts/2016/03/spawkfish-vs-stockfish/. The current version is stronger than the one I analyzed, but I haven't fixed any of the fundamental problems so he's still prone to losing for the same reasons. He is also sometimes hilariously bad at executing checkmate.

Checkmates are actually a really annoying problem, because people almost always resign before checkmate actually happens, so there are very few checkmates in the training data I have.

Nippashish fucked around with this message at 22:20 on Mar 21, 2016

Eyes Only
May 20, 2008

Do not attempt to adjust your set.
I'm curious why you don't just have it play against itself (or a diverse array of variants of itself) for more training data.

Nippashish
Nov 2, 2005

Let me see you dance!

Eyes Only posted:

I'm curious why you don't just have it play against itself (or a diverse array of variants of itself) for more training data.

I've thought a lot about this, but I'm a bit apprehensive about actually doing it because of lack of diversity. In the go paper from deepmind (which was the inspiration for this project) they say that the policy they learned from human games works better in their tree search than the policy they get after several rounds of policy improvement from self play, even though the new policy beats the old one by a wide margin. Even playing against many previous versions wasn't enough for them to overcome this.

This being a diversity problem makes sense to me on a lot of levels; from the technical side the policy gradient objective doesn't account for an adversarial environment and also from the intuitive side when you think about how a single great player can change how a game is played by coming up with a style no one has ever seen before and dominating until people figure out how to deal with it.

Something I do plan to try is playing against stockfish to generate training data. Stockfish relies mostly on search so I'm less worried about lack of diversity, because search should be able to find and exploit any holes that emerge in spawkfish's strategy when they show up. The only reason I haven't done this yet is time. It takes a long time to train the networks and all of my GPUs are tied up testing out different ways of making the supervised learning part stronger right now.

Nippashish fucked around with this message at 23:40 on Mar 21, 2016

Eyes Only
May 20, 2008

Do not attempt to adjust your set.
Interesting, I haven't read the AlphaGo paper yet but I imagine the story is a bit different for your pure-NN setup. Their hybrid approach means they'll be able to tree search at the end of the game when the tree is much smaller. Without tree search or some other type of looping search I suspect it will be hard for any feedforward network to generalize across the huge range of endstates. At least not without a fuckton of data.

What made you choose 2x8x8 for the output instead of [piece index] + 8x8 or [piece] + [nth possible move] or some other encoding?

Nippashish
Nov 2, 2005

Let me see you dance!

Eyes Only posted:

Interesting, I haven't read the AlphaGo paper yet but I imagine the story is a bit different for your pure-NN setup. Their hybrid approach means they'll be able to tree search at the end of the game when the tree is much smaller. Without tree search or some other type of looping search I suspect it will be hard for any feedforward network to generalize across the huge range of endstates. At least not without a fuckton of data.

AlphaGo is apparently quite strong even using only the policy network. The nature paper has this figure:



which shows the policy network alone being ~3d level. 3d is a long way from pro ranks, but is still pretty strong. This makes me think it should be possible to train a purely feedforward chess player that doesn't make absurd blunders the way spawkfish does right now.

Eyes Only posted:

What made you choose 2x8x8 for the output instead of [piece index] + 8x8 or [piece] + [nth possible move] or some other encoding?

That was the most convenient format for the data. I'm training a 64x8x8 output version now where I don't factor the origin and destination squares for the move and that looks so far like it will be a bit stronger. I like the [piece index] x 8 x 8 idea though, I'll give that one a try when I have some spare gpu cycles.

netcat
Apr 29, 2008
When you do these ML projects, do you write your own from scratch or use open source libs and if so what do you use?

Nippashish
Nov 2, 2005

Let me see you dance!

netcat posted:

When you do these ML projects, do you write your own from scratch or use open source libs and if so what do you use?

I'm using tensorflow for the networks with some homegrown stuff around it for processing the data and making the networks do what I want.

Jo
Jan 24, 2005

:allears:
Soiled Meat

netcat posted:

When you do these ML projects, do you write your own from scratch or use open source libs and if so what do you use?

Chalk up another vote for TensorFlow. I've played with most of the Python NN libraries (and a few of the Java ones). It's my favorite by far. Less frustrating than Theano. Just the right amount of abstraction without losing robustness. I'm still terrible at the subject, though, so take what I say with a grain of salt.

Sex Bumbo
Aug 14, 2004
Some dumb images I programmed.


Feral Integral
Jun 6, 2006

YOSPOS

Sex Bumbo posted:

Some dumb images I programmed.




That's a really cool effect, reminds me of water colors, what's the code look like?

Sex Bumbo
Aug 14, 2004
The code to generate them is extremely simple, but it was actually meant to be an exercise in writing a DX12 engine for messing around in my spare time.

I was inspired by the top result here http://codegolf.stackexchange.com/questions/22144/images-with-all-colors

code:
while canvas not filled:
  pick a color somehow
  find a best fit point on canvas for it (e.g. minimum color distance adjacent to existing pixels)
  put it there
The gpu version is a tiny bit more complex
code:
while canvas not filled:
  pick a color somehow
  perform a parallel reduction on the set of candidate positions to find the best one
  place point
  remove that candidate position from set
  add new candidate positions

when swap chain is ready to draw:
  copy canvas to screen
So when the program starts it loops several hundred times a frame, but it adapts down to only a few dozen times because the candidate point set is much greater, but it never drops below 60fps.

Centripetal Horse
Nov 22, 2009

Fuck money, get GBS

This could have bought you a half a tank of gas, lmfao -
Love, gromdul
I don't have any actual screenshots, yet, but I do have some fairly amusing text. Inspired by Taybot, I went exploring and found some code for using RNNs to produce readable text. I had been planning to start work on a sort of Markov++ project this weekend, but I got distracted by the RNN code. Now, I think my bot is trying to write Finnegan's Wake:

"Is’s ack prembated, and he knowarry smelied eyes so hapfed to think of him, suddented on my legs I feel the peoto reseants all."

Maybe it's A Clockwork Orange.

hendersa
Sep 17, 2006

Over the past few weeks, I have been taking an hour here and there to clean up the code on all of the various projects I have going on. I wanted to make sure everything that I had was checked into Github so that the latest and greatest was available. As I was digging through some Eagle PCB design files for my "BESCape" (SNES/RTC cape board for the BeagleBone Black), I noticed an obvious problem on the schematic. I pulled out one of the PCBs I have here, tested it, and sure enough, there was a problem. I fixed the schematic, rerouted the traces, checked in the design files, and sent off a request for new PCBs to be fabbed in China. Then, I forgot all about it and went on with my day.

Yesterday, this showed up via DHL:


I decided to crack open the packaging on the new PCBs and try a unit test to see if the previous issue was addressed. Since someone out there might be interested in watching me solder the thing, I decided to try something new:


That is a GoPro Hero, set up on a cheap $10 tripod. It actually did a pretty good job of recording my soldering and unit testing, which I sped up about 7x and uploaded to YouTube:
https://www.youtube.com/watch?v=WmHq9iZGQJY

Apparently, if you spend a lot of time swearing at surface-mount components as you solder them on with a standard soldering iron, you eventually get pretty good at it. The soldering, I mean. I guess my swearing is coming along pretty well, too. I stick to components in a 0805 package or bigger, so it is still feasible to solder SMT components by hand.

In other news, I'm a Google Summer of Code mentor for BeagleBoard.org again this year, and the project proposal deadline has just passed. Half of India has submitted proposals for me to evaluate (just like last year). I don't know why I keep volunteering for this, but I do.

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe
I have a perhaps silly question: wasn't BeagleBoard always an advertising thing for their OMAP SoC? And haven't they completely shut down the OMAP wing because they couldn't sell anything? But they're still making BeagleBoards and apparently trying to support a community around it?

Do you think the writing is on the wall for this, until some higher-up discovers the program still hasn't been shut down yet?

Adbot
ADBOT LOVES YOU

hendersa
Sep 17, 2006

Suspicious Dish posted:

I have a perhaps silly question: wasn't BeagleBoard always an advertising thing for their OMAP SoC? And haven't they completely shut down the OMAP wing because they couldn't sell anything? But they're still making BeagleBoards and apparently trying to support a community around it?

Do you think the writing is on the wall for this, until some higher-up discovers the program still hasn't been shut down yet?
The original BeagleBoard was an OMAP chip, but it was first released in 2008. All of the other boards/bones are based on the Sitara line of processors, which TI has doubled-down on for the embedded market. After the original BeagleBoard, there was the BeagleBoard-xM in 2010. That was the first to switch over to the Sitara family. So, no real OMAP stuff has been going on for a while. As for TI's interest in BB.org, they use the BB.org hardware quite a lot in their university programs (i.e. "get cheap TI EVMs into the hands of college students so that they will suggest it for their designs when they enter industry"). If I had to guess, it was a move from advertising OMAP to advertising Sitara.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply