Git Product home page Git Product logo

Comments (4)

zenon avatar zenon commented on May 18, 2024

Hello Robert,

there are two issues in the sample function.

  1. It outputs the character that has the maximal probability, but the network never gets told what was chosen. So it can base its next predictions only on the former predictions.

    function sampleMaxarg2(m, alphabet, len)
    Flux.reset!(m)
    buf = IOBuffer()
    s = onehot(rand(alphabet), alphabet)
    for i = 1:len
    c = argmax(s, alphabet)
    write(buf, c)
    s = m(onehot(c, alphabet)) # here we feed back only the selected char
    end
    return String(take!(buf))
    end

This, for me, gives much better text, but boring one: It gets repetetive fast.
(Note that I renamed the function, as I import another function called sample in step 2. )

  1. The curremt sample function always choses the character with the maximal probability, even -e.g.- if it is just a little better than anything else. We get much more pleasing results when we use a probabilistic sampling.

(you may have to rename something.)

using StatsBase

function sampleT(m, alphabet, len)
    Flux.reset!(m)
    buf = IOBuffer()
    c = rand(alphabet)
    write(buf, c)
    s = onehot(c, alphabet)
    for i = 1:len
        s = m(s)
        # don't just take the maximum, but use s as probabilities
        # and sample from it. Otherwise the text gets repetetive.
        c = sample(alphabet, weights(s.data))
        write(buf, c)
        # then start from what has been done (sampled), not from what had been predicted.
        s = onehot(c, alphabet)
    end
    return String(take!(buf))
end

I hope this helps.

You write from Sweden, so maybe this comparison after training fairy tales by Hans Christian Andersen (in german) for just 60 epochs (one night on my laptop) can give you an impression:

The current sample function:

"- gehtn sir distel wer aon die eeten wurde urin die distag werde, Dir wellst du mur diud aan sied iiem missen!“ -ring niedere aie eahi tüße eineridet werde Iie fährein helle deran sie deste surtehen “\r\n
r\n„Durtar strin sie dir sit ent werd rtleinhen, Derselte “ resen uun die geten en sirsen Dir eirten wilde siß “ Deuekar sie weihe iieifenten ainserten san eins eur wüße sas kolne shiis und degte sie eneln “
Dus Keldmackhis sie deste daranten -ersaßen der wie dirte, „ber die Kende Iur dem aesser, „\rber dert dacken Diemand san eih sich aie die eette ihnen des ieter heilt Uoch iinsen wußt dim su sogel sagt n
ie eie eostin sur soß Delbe iun aingenen aie wie eeste sie dir melcte, den darelbär “ seh n Sir weit worde iicet iur iicc dersaure “ \n\r\n\rsleg iin anter vie dir nelde ainnsigs Sellen sie dihti gie nied
lig Däße sie kin -einen Kole wahl sie eelds eog selcht Sie wohlt eeuemen wir nas “\r\n\rhzt aell der wie däßtewar die deste eettestecden sie durtehe \n\rur Selle sie dir nbeilt sich der siß Sehlen sollt
e sir diß n Tehe. Singlückt eees dämtern gelt sie sustrüten sie dih eun aeige sie dir dol “ Sig llge iur Telber Dem Seihe sharte der ben iur air eistel -etken. Dieslich s iich Seßschen sil die Selse sehn seu
s sich lahl seinen wär easter Iber duldeten air nihen Das retz stoczen kir kommen, Diesgige aden haste sich dir eessen sunten. Dier aelsen Iinmlich der hon derwahm die aeg aaß sie dir hehne, wärm sie dur na
sen. \n\rie werd arz n sameete eeiden wie und destel eic iich dir digtes Behe s silde die Seike singt wir eer dieder saß nen dar nuß “ „eine scg last Gah eot “ ses wärde eicht sesene Kesstrehen hart Dehse
ich sar, „nhetten wie eurten, Sirt ehe sicg ihe iin laubt Ders Sehns der veld \n\r\n„bsere een desman . pir aaumerten dar nir Die aelts seg sie seht sie dir din siedlich um Galsel Aun diltenelben dirten W
er wer halten sie dir kellen “ Ailber den deb eingens rar herd ueben sie durten Dir welcte eurain sitgente srangen “ \nriehten derd nu dir sild dogte vaste sie sirsal, aeue der nesehnet die eeine iich eur w
ie ein sie däste sact eied iur Selte sahcte sich nin _ apgen heiten Telse scheig, Em seige sie däste, aie ielct eirtlich hegd siige euste siu “ Seinensere Aolder helt Dersolten sie dur nahn Aägel dessen sir
diederen ate aun dem kinne Kesser san t eieken “ Das iehre eersah, „an siehrlten sie durten Die keinen wellen sie digte ich dor aicgen aie . Die getzen, Deicen, „Kin wels iin hiin ungen Willst “ Ser sir w
elden, Dielligf sie bette sie gehen wurden, Su weltet iur aehtes sehe, „age deikte sieg wie dih der Kelt “aßte durüben “\r\n\r\n„Serenaß iur däßt sich ihr sie dur a dcch ihrwelst weren, „uin meudt “ Sis word
e ihi sie ein häßme ienkeich sigte sie dausen! Die keißen wie der gußte sie aeigt du sein dastnflren wilde, „angsissel saß einesaß, dar nin deinend aurd aaben Wiissehen sie der dir eer nart aur aker Dessen ht
e uie kenm iih der Welden vesen, „um weld "

Then the version that tells the net about the chosen character:

"1reichen saß eine große Thüre aus dem Schlosse der Schneekönigin saß in dem andern besondert aus dem Schlosse der Schneekönigin saß in dem andern besondert aus dem Schlosse der Schneekönigin saß in dem andern bes
ondert aus dem Schlosse der Schneekönigin saß in dem andern besondert aus dem Schlosse der Schneekönigin saß in dem andern besondert aus dem Schlosse der Schneekönigin saß in dem andern besondert aus dem Schlosse
der Schneekönigin saß in dem andern besondert aus dem Schlosse der Schneekönigin saß in dem andern besondert aus dem Schlosse der Schneekönigin saß in dem andern besondert aus dem Schlosse der Schneekönigin saß in
....."

And the last version:

"4en, hste zwei gürte, aber es setzte blassenblich in die\r\nKönig tanzen.\r\n\r\n„Das ist eingewehkte sie\r\nnicht mehr niemand mit Blumen genommen; wäre ihr auch auf und flocht es,\r\nalle Seele\r\nseiner Ofer_
Wasser weit glücklich, in welcher sie dann sind dabei des andern trechten ausgeschrier und\r\nwiesen wohl\r\nzu dem Tische duftete, aber das war der kart mehr größer und saß eine recheigstag!“\r\n\r\n„Kwarhe es, d
aß er ihr nach einer Däumelieschen gerade wein auf den Bäumchen geschafft, dich’\r\nnie gut’ großer Neste von Reise auf ihnen, wenn man auf darauf.\r\n\r\n„Ja, und wuch!“ sagte die Althor, „immer meine ganzen Thee
beim\r\nSchlimmeln. Und siebt er über jedem Flügel als ich, ob auf dem Soldaten nur setzen, aber da außnammein\r\nschön sehr ist lege ich es nicht herab. Diese wollte vor dem Tadchen gegen den Leibsalls in die\r
nErde mit:\r\n\r\n „Nein, ihr alte\r\nKupferdas\r\nheißt, „niemand waren\r\ndie kleine Ida kannst’ noch vor sich’ von\r\nSchneemann\r\nhat.“\r\n\r\n„Was sie war. „Nein, wie höre ihn mich in der weite kleinen Zwei
ge aufgenommen, denn aus, was sie dagewahren besuchen machen Um den andern] --“\r\n\r\nAber das an\r\ngrößte liegen, aber die Antlit deiner Mutter, „Platschen seig wurde es, sie gar nicht auf das Land dagelissen;
r\nihm\r\nals\r\nwelcher doch, was der größte dem andern\r\nbeschionen.\r\n\r\nDer alles geninscherte man ihre\r\nalten Randen ringsimschen Kinder schon zu. „Plochter\r\nsagen?“ -- „Auch etwas Welt!“\r\n\r\nUnd to
t wir alte Großen Nacht zuging sie erfunden hätte, „ob trug einmal, ihr, während er spart alle\r\nblaue\r\nSee etwas weitallen. Dopfer herein, hat\r\nes zu gerade zufragen ja schön!“ sagten die Sonne zeigen, um ei
nen hören, tanz\r\nsagte sie in dem\r\nKopfe. Leiser, der vor der Schuß rehrer und sagte einen Schlafen; „Ausein Gefühle großen\r\nSchloß auf dem andern. Alle Seufz wieder zur Duchen gute Maulwurf\r\nim Kacwelten!
“ dachte das kleine Mädchen wußte sie, welche es gar nicht sagen. Und\r\nin die Sonne zu fragen Ball.\r\n\r\nDer kleine Kay.\r\n\r\n„Es ist doch\r\njrliest geleg her, wohlte den König sie bramlich\r\nZunstäßen zum
Prinzessin bewahren, so wäriter Kneikasst,\r\nschlug ihre Nacht wohl stand\r\nwie einen mitten tanzen. Alle Schöneres\r\nals sie sagen, auf dem Wasser von der Thüren\r\nhinauf und dann bleich auf ihrer den Tage n
euem laefen, welches\r\nSonne in das Gerda klug auf seinen armen\r\nSchönungel hinein!“ giehle\r\nwasren ein Schneeren. Un wohl, und nun muß man von einer Lapplande vorüber mit ihr\r\nwollte sich heuen da kriebte
sie sich in dem\r\nSpitze hinausgehabtarte, wohin ihn mir unsere Blüten mache drang sein, als ob es denn sämestand;\r\ndann konnte sie\r\ndreieckkellchen. „Obbensicht\r\nist das nun kamen viele dabei gerade der pr
ächtigen Buchen\r\nwaren gehängte,\r\ndoch euch Ritterbaum war\r\nnun davon geben!“ und die Freibs drang, ob\r\ndas längel,\r\nein schöne Garten; mich ihre Blumen von\r\nseinem Knaben in den Bochzongen. „Wie heim-
Sohn eine ganz Bäuschen deine Köpfe vorfehren.\r\n\r\nSie\r\nhatte es ganz\r\nniemand sehr glitte und beine wie gar lehn; war es davon!“\r\n\r\n„Wenn sehen!“\r\n\r\n„Geschiede "

from model-zoo.

MikeInnes avatar MikeInnes commented on May 18, 2024

c = argmax(s, alphabet); s = m(onehot(c, alphabet))

Isn't this equivalent to the s = m(s) that we're already doing?

from model-zoo.

zenon avatar zenon commented on May 18, 2024

Hi Mike!

No. s(m) is a vector of floats between 0 and 1, aka probability vector; onehot(c, ..) is a vector of o or one.
The current version trains the nets with onehot vectors, but while sampling uses a onehot vectore once, and then uses probability vectors to feed back into the net.

c, the result of the argmax call, isn't given to the net. Say m(s) gives two cells with p=0.5, and all other cells are zero. The net cannot know how argmax is implemented and thus cannot know what of both values has been used as output.

Greetings, z.

from model-zoo.

MikeInnes avatar MikeInnes commented on May 18, 2024

@zenon good catch, thanks! this should be fixed now. I'm also trying to replicate my old results with this code, so that should make sure it's all working as expected.

from model-zoo.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.