From 9b14b46464f2add51236568dd01f445b06ca33de Mon Sep 17 00:00:00 2001 From: Meinrad Recheis Date: Sat, 11 May 2019 14:58:19 +0200 Subject: [PATCH] fixed vd_cnn.meta --- graph/vd_cnn.meta | Bin 697103 -> 700216 bytes .../TextProcess/TextClassificationTrain.cs | 26 +++++++++++------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/graph/vd_cnn.meta b/graph/vd_cnn.meta index 1c676f523f50465e6dc6166f0380e2f82d8c8a62..b857fc6c5e31db1d39ebbaf4810d8508c6ebb929 100644 GIT binary patch delta 6366 zcmbVQYitx%6wW>O_H~g$2eySNv>-~iEx6qU5jA2P9t-7JiUjbnF53k*Y`dk?MbKzL zOo%iHM(v5l7!i#M$QuSEK8R64BTz|%ABYM+WKm2}V+BBCEEf<&vko|i{snBi<;|$D*~Y=@mC<+ z(A*SjTp4&G(!3-PjV+Ee*S}pSMBf=%={XQ5-GuWEj2sp$I?u63SctC6Yo5Vo97z zhVh}wHPewuHNx&Rt|i&kmSe`nhyV zuGs-4C6Wz;XXa-WET8S29?2gfsJ6&f^Ng2wrIGLkB z1uf&81y@8g1@OOZ;2!fdALS537dLqhL#fqr;#H_Ub~m&_vi_rR>WSAct@B6Qk<&@1IA^5FWs(6o4R;; z4^)?aMtFr33-s@WVHHjp3e*mFqY7BKZ7%j zyoJjj>mpQ+~m_5#z9a!8HtTT^_B5MwMQGezb9A@Mo zuF9eX`L?y@M53bpl6MvRCcxF-_FHGWn+Qz&`1dz34ca*NNkG2!=<#FV8ZPGvCJspC z*yigGpM>L#{gz`<zmP4x2=%y%mwhmCW5QZLw>Psu|?5X ztf?-tT*;o4{5B!7Tpec2>uVd7(#t~Ik^m2RxtqG^>CTlH?0|e6{0n54NcOirbSmA;G6`P` ze41R4whp+xTlF_L#lu2I)dA32*2?)nd{NDC;l_9-8?EFl2#dE0(;`d5s#|J9*6zb) zK!@p-HFOEXug_Zl93+ikiX0gndKFyyJ#Wyj7~2ATqU5X(uRsxz)C)VVz(C>v&m4A{ z@NotbZ@P?YrpeXEqY9lKkE$kthb5;?T+tY8sGAU}*Q5pa;^DK@V;r2=$6Q*lk^exE zNA|dAS!uF1*V)thrBhjEgcmDR+$>qr_s=7QPG@bLPc_sZnpQ^r)vfeL#nZJv-;@)H zdbkCewby7);eJKj7tO~XPEk(e z%jQf*F>wN`AHMgAIPqScpH)J0`BAJXp)M>g6t`Fv?S;jcGINRSrYrE)lEZCobA>{^ z!cE^{sl})|Rkk{l%o#ri9NVjCzvL2QrBTER>4H9wUdwhZuTf^EvYoy&MC^jKy#`Tn rF>z&xD^pxqdaps*C->!PJU18$#hZemmFDZtwZFG#>%X_>3~v7)sOfNV delta 3106 zcmZ`*YfKbZ6waKv>#}zc*Vn9!#Kxr2 zv**6 z?>pajAJcQA_`navUA?*RB=&w^ZcAS-BlYFNomQ@rri8aeA|83bfp1`GvPdWC6A`>F zu=%*|7|h|SXsSMqeaGMpEJbsois(k3l?TBn6Y*4u z^;`X3!N9{^-@^2wO*Gw-77hi1o{hoHp?aQFih-?yQ4^C-z$^TE>Ut^~4|YRE#a_mw zBcm&2c$@ko7`)~Acf^LEOksRP!6=Qbov@G#(<~heA9O;1TWwOs_qw2B)u)UpQ^XV4 zRv!?X_@qVZZ?#V_()D+qW-%NMM*Pp4BE-pBC}B>}zBIX&u?TKE1%*zFk{S{Y&bMdc zC%xcHuxsFyY}YzV_JY%}l3QV!=sgW(v)3jF7TxIgj&GRH6cG2Hfs*1aG((pqPTucL zu*@_#w;NvNHc+=7j~{l!>Z&$NYet1>mj-)a^I$7W`W8caOGH+jw;Y5on zDg98xg)9ag=!f)F!$2L*c>?BD?jOfCpKhBqMeV`RNq5+%tr3f9m%oG37j~HX$#gXV z{65~UYhkDrvGj51JaptV#FZ=$it=HhjHYl>(*AQJS zNo)(+Gte7@bjA{ja%dW^8i7n~jX@4Pa^S_Q;LcM}{F@uaTJ0#2yH7Ms8jZpCgq&q) zfePU^6IO=8L7ph1puwk_@3dyyhap2HinD%!Wn{z==UHF|#t*P(;r^+oX#IBm3NZrr zH166|$4$6O$eD5YRW@#`mCsyxjPrAjfkkE*+#17Mx1o&O*WnySC^GHLWT~yjzK5Xy zN45ld7~Fjm+?hs%M}d$xofRt0e5-Zni*wMx4%~%haL0iSLveU%v((ok1$m=!qSX}FW~keNZ0Bw7y>WzIsW^Tu7B$gWHFk97MCpAXnDU6frosg zYw0pcED|G4JW)m*e5^~h=5Kh5d_4~3rp9QnHq@-Fc`>{=)GUlaR#%NSt0CtM!%O6m zgU(c&W91VC7mk42sV@v;*GN}}K_X;;p&m2z;$tXav_)u9K2AeOths{x<)B$O_z#XS7Xb|gb7l-O1f)&zlWJpg zdCPeoKVPJSrDQL``cd$aedAzP1UK`nJjAipQtgy2Cr=!7meID9&9Q@oTw`dlrQ?Bq zcFNd}%`Ci@%2qRHaQkh@P_HthUF9xT8rG_1j@Ph!6=_1LlpZ?S*T^m!r=$ul?QXIi zB2chiWu$&Q81;pz+H9i8elKkSI>+b=OY_(%?JmMG8q!lWJX#ISUGbzX56dzb7go<> zCt+#~Z0eVr0g2mB!ECY*=-kBmcz>sDBEm4Fs~4vcFZVYFVA32q!5;{VkqAG77V|~8 zd>-pku~ZRi1a=`A)sK8-N{R{WAB0?ItQ#e-h;`$kpq(;_t>)<$fVy12Sj(1R;U;^b zErlLuD0UUGv+?p0Hifb554ltZ?#!1L+gFsnh$oBKLOfr{rb@St+FA(Sn=8{hJe^Hy zpUzIi`|X5dg;|%;9ZaYrzQJFl9YYJG5N~>Tha%m diff --git a/test/TensorFlowNET.Examples/TextProcess/TextClassificationTrain.cs b/test/TensorFlowNET.Examples/TextProcess/TextClassificationTrain.cs index d9877d8c..891ad81f 100644 --- a/test/TensorFlowNET.Examples/TextProcess/TextClassificationTrain.cs +++ b/test/TensorFlowNET.Examples/TextProcess/TextClassificationTrain.cs @@ -52,38 +52,37 @@ namespace TensorFlowNET.Examples.CnnTextClassification protected virtual bool RunWithImportedGraph(Session sess, Graph graph) { + var stopwatch = Stopwatch.StartNew(); Console.WriteLine("Building dataset..."); var (x, y, alphabet_size) = DataHelpers.build_char_dataset("train", model_name, CHAR_MAX_LEN, DataLimit=null); - Console.WriteLine("\tDONE"); + Console.WriteLine("\tDONE "); var (train_x, valid_x, train_y, valid_y) = train_test_split(x, y, test_size: 0.15f); Console.WriteLine("Import graph..."); var meta_file = model_name + ".meta"; tf.train.import_meta_graph(Path.Join("graph", meta_file)); - Console.WriteLine("\tDONE"); - // definitely necessary, otherwize will get the exception of "use uninitialized variable" + Console.WriteLine("\tDONE " + stopwatch.Elapsed); + sess.run(tf.global_variables_initializer()); var train_batches = batch_iter(train_x, train_y, BATCH_SIZE, NUM_EPOCHS); - var num_batches_per_epoch = (len(train_x) - 1); // BATCH_SIZE + 1 + var num_batches_per_epoch = (len(train_x) - 1) / BATCH_SIZE + 1; double max_accuracy = 0; Tensor is_training = graph.get_operation_by_name("is_training"); Tensor model_x = graph.get_operation_by_name("x"); Tensor model_y = graph.get_operation_by_name("y"); - Tensor loss = graph.get_operation_by_name("loss/loss"); + Tensor loss = graph.get_operation_by_name("loss/value"); //var optimizer_nodes = graph._nodes_by_name.Keys.Where(key => key.Contains("optimizer")).ToArray(); Tensor optimizer = graph.get_operation_by_name("loss/optimizer"); Tensor global_step = graph.get_operation_by_name("global_step"); - Tensor accuracy = graph.get_operation_by_name("accuracy/accuracy"); - var stopwatch = Stopwatch.StartNew(); + Tensor accuracy = graph.get_operation_by_name("accuracy/value"); + stopwatch = Stopwatch.StartNew(); int i = 0; foreach (var (x_batch, y_batch, total) in train_batches) { i++; - var estimate = TimeSpan.FromSeconds((stopwatch.Elapsed.TotalSeconds / i) * total); - Console.WriteLine($"Training on batch {i}/{total}. Estimated training time: {estimate}"); var train_feed_dict = new Hashtable { [model_x] = x_batch, @@ -94,9 +93,14 @@ namespace TensorFlowNET.Examples.CnnTextClassification //_, step, loss = sess.run([model.optimizer, model.global_step, model.loss], feed_dict = train_feed_dict) var result = sess.run(new ITensorOrOperation[] { optimizer, global_step, loss }, train_feed_dict); //loss_value = result[2]; - var step = result[1]; + var step = result[1]; if (step % 10 == 0) + { + var estimate = TimeSpan.FromSeconds((stopwatch.Elapsed.TotalSeconds / i) * total); + Console.WriteLine($"Training on batch {i}/{total}. Estimated training time: {estimate}"); Console.WriteLine($"Step {step} loss: {result[2]}"); + } + if (step % 100 == 0) { continue; @@ -198,6 +202,8 @@ namespace TensorFlowNET.Examples.CnnTextClassification { // download graph meta data var meta_file = model_name + ".meta"; + if (File.GetLastWriteTime(meta_file) < new DateTime(2019,05,11)) // delete old cached file which contains errors + File.Delete(meta_file); url = "https://raw.githubusercontent.com/SciSharp/TensorFlow.NET/master/graph/" + meta_file; Web.Download(url, "graph", meta_file); }