Det är lite messy att köra via IBMs servrar, men det känns ändå som ett roligt alternativ, dels för möjligheten att inkludera Watson-tjänster, och dels för att de erbjuder en del rätt enkla sätt att köra "på riktigt" utan att ha en virtuell server. Det jag har gjort är att köra Flask lokalt och via Bluemix.
Man får se upp lite med prissättningen -- jag blir inte riktigt klar över vad det kostar, och hittar inte fakturorna online. Som det är nu skickas de bara i pappersform till mig.
Logga in på https://console.bluemix.net/. (Skaffa ett IBM-konto om du inte har.)
På https://console.bluemix.net/dashboard/apps/ kommer apparna att finnas. Det är roligt att IBM för Cloud foundry när man ska deploya sina applikationer, för det är ett open source-projekt.
Man behöver installera Cloud foundry som CLI, command line interface, så att man kan använda terminalen för att lägga upp materialet på servern.
IBM har en tutorial som är lätt att följa för att komma igång. Vitsen är att man ska kunna köra appen både lokalt och på servern. Så vissa saker i filerna är till för att det ska funka lokalt, och vissa för att det ska funka på IBM-molnet. (Mer information finns här när man är inloggad. Obs att de där har uppdaterat så att man inte kör Cloud foundry direkt, utan går genom en IBM cloud CLI...)
Det är intressant hur enormt IBM-molnet är, eller det är ju på ett sätt oändligt, men det är liksom förberett för att innehålla så stora datastrukturer. Väldigt mycket större än min lilla app... För att appen ska hamna på rätt ställe skapar man en (eller flera) organisation, och inuti den spaces, där apparna ligger. Gå hit.
När det här skrivs ser koden ut så här, men om man vill köra det själv kanske det är bättre att se vad som hänt sen idag och köra den senaste versionen.
Eller alltså det är nog svårt att köra det här exemplet själv. Det som det gör är att ta en färdigtränad modell från det här char-rnn-tensorflow-biblioteket och gör samplingen på IBM-servern. Jag har inte modellen som en del av koden på Github, utan lokalt i en katalog. Kommandot cf push som man använder för att deploya sin app laddar upp hela ens lokala bibliotek, så då skickar den upp modellen också. Det är väldigt praktiskt. Om det finns filer man inte vill skicka upp kan man specificera detta i en .cfignore-fil.
/Simon