{"id":78,"date":"2013-10-09T01:31:30","date_gmt":"2013-10-08T16:31:30","guid":{"rendered":"https:\/\/www.dogrow.net\/nnet\/?p=78"},"modified":"2025-06-11T22:49:26","modified_gmt":"2025-06-11T13:49:26","slug":"blog7","status":"publish","type":"post","link":"https:\/\/www.dogrow.net\/nnet\/blog7\/","title":{"rendered":"(7) \u96a0\u308c\u5c64\u306esigmoid\u3092tanh\u306b\u3057\u3066\u307f\u308b"},"content":{"rendered":"<h1 class=\"my_h\">1. sigmoid\u306e\u4ee3\u308f\u308a\u306btanh<\/h1>\n<p>\u6d3b\u6027\u5316\u95a2\u6570\u306f <span class=\"my_fc_deeppinkBBig\">sigmoid <\/span>\u306e\u4ed6\u306b <span class=\"my_fc_deeppinkBBig\">tanh<\/span> \u3082\u4f7f\u7528\u3059\u308b\u3089\u3057\u3044\u3002<br \/>\n\u5206\u985e\u30bf\u30b9\u30af\u3067\u4f7f\u3046\u6d3b\u6027\u5316\u95a2\u6570\u306f\u3001\u5165\u529b\u5024\u306b\u5bfe\u3057\u3066\u51fa\u529b\u5024\u304c\u4e00\u5b9a\u7bc4\u56f2\u5185\u306b\u5236\u9650\u3055\u308c\u308b\u306a\u3089\u3070\u3001\u3069\u3093\u306a\u95a2\u6570\u3067\u3082\u3088\u3044\u3089\u3057\u3044\u3002<\/p>\n<p>\u4e21\u95a2\u6570\u306e\u5165\u529b\u306b\u5bfe\u3059\u308b\u51fa\u529b\u3092\u30b0\u30e9\u30d5\u306b\u3057\u3066\u307f\u305f\u3002<\/p>\n<p>sigmoid\u3068\u6bd4\u8f03\u3059\u308b\u3068 tanh\u306f\u7e26\u306b\u9577\u304f\u3001\u6a2a\u306b\u77ed\u304f\u30010\u5bfe\u8c61\u306b\u306a\u3063\u3066\u3044\u308b\u3002<br \/>\nx=0\u4ed8\u8fd1\u306e\u5909\u5316\u306b\u654f\u611f\u306b\u53cd\u5fdc\u3059\u308b\u3002<\/p>\n<pre>\r\noctave:1> x = [-10:0.1:10];\r\noctave:2> y_sigmoid = 1.\/(1+exp(-x));\r\noctave:3> y_tanh    = tanh(x);\r\noctave:4> figure;\r\noctave:5> plot(x,y_sigmoid,'b');\r\noctave:6> hold on;\r\noctave:7> plot(x,y_tanh,'r');\r\noctave:8> \r\noctave:8> title('activation function');\r\noctave:9> xlabel('IN');\r\noctave:10> ylabel('OUT');\r\noctave:11> h = legend ({'sigmoid', 'tanh'}, 'location', 'east');\r\noctave:12> grid on;\r\n<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dogrow.net\/nnet\/wp-content\/uploads\/2013\/10\/20140824_02.png\" alt=\"20140824_02\" width=\"466\" height=\"369\" class=\"alignnone size-full wp-image-395\" srcset=\"https:\/\/www.dogrow.net\/nnet\/wp-content\/uploads\/2013\/10\/20140824_02.png 466w, https:\/\/www.dogrow.net\/nnet\/wp-content\/uploads\/2013\/10\/20140824_02-300x237.png 300w\" sizes=\"auto, (max-width: 466px) 100vw, 466px\" \/><\/p>\n<h1 class=\"my_h\">2. \u5b9f\u9a13\u7d50\u679c<\/h1>\n<p><a href=\"https:\/\/www.dogrow.net\/nnet\/blog4\/\" target=\"_blank\" rel=\"noopener noreferrer\">\u30b7\u30f3\u30d7\u30eb\u69cb\u6210\u521d\u7248<\/a>\u3067\u306f\u3001\u5168\u5c64\u306e\u6d3b\u6027\u5316\u95a2\u6570\u3092sigmoid\u3068\u3057\u3066\u3044\u305f\u3002<\/p>\n<p>\u4eca\u56de\u306f\u3001<span class=\"my_fc_deeppinkB\">\u96a0\u308c\u5c64\u3092tanh<\/span>, <span class=\"my_fc_deeppinkB\">\u51fa\u529b\u5c64\u3092sigmoid<\/span> \u306b\u3057\u3066 MNIST\u81ea\u52d5\u8a8d\u8b58\u3092\u5b9f\u884c\u3057\u3066\u307f\u308b\u3002<\/p>\n<p>(1) 3\u5c64 [784]-[16]-[10] <span class=\"my_fc_blueBBig\">88.4%(-0.6%)<\/span><\/p>\n<pre>octave:1&gt; NNET_control([784 16 10], 1)\r\nEPOCH No.1\r\n[ 0]  929 \/  980 ( 94.8%)\r\n[ 1] 1101 \/ 1135 ( 97.0%)\r\n[ 2]  904 \/ 1032 ( 87.6%)\r\n[ 3]  754 \/ 1010 ( 74.7%)\r\n[ 4]  880 \/  982 ( 89.6%)\r\n[ 5]  773 \/  892 ( 86.7%)\r\n[ 6]  881 \/  958 ( 92.0%)\r\n[ 7]  926 \/ 1028 ( 90.1%)\r\n[ 8]  815 \/  974 ( 83.7%)\r\n[ 9]  873 \/ 1009 ( 86.5%)\r\nTotal  8836 \/ 10000 ( 88.4%)<\/pre>\n<p>(2) 3\u5c64 [784]-[24]-[10] <span class=\"my_fc_blueBBig\">88.8%(-1.1%)<\/span><\/p>\n<pre>octave:2&gt; NNET_control([784 24 10], 1)\r\nEPOCH No.1\r\n[ 0]  951 \/  980 ( 97.0%)\r\n[ 1] 1113 \/ 1135 ( 98.1%)\r\n[ 2]  873 \/ 1032 ( 84.6%)\r\n[ 3]  870 \/ 1010 ( 86.1%)\r\n[ 4]  839 \/  982 ( 85.4%)\r\n[ 5]  769 \/  892 ( 86.2%)\r\n[ 6]  877 \/  958 ( 91.5%)\r\n[ 7]  911 \/ 1028 ( 88.6%)\r\n[ 8]  835 \/  974 ( 85.7%)\r\n[ 9]  847 \/ 1009 ( 83.9%)\r\nTotal  8885 \/ 10000 ( 88.8%)<\/pre>\n<p>(3) 3\u5c64 [784]-[32]-[10] <span class=\"my_fc_blueBBig\">81.8%(-8.8%)<\/span><\/p>\n<pre>octave:4&gt; NNET_control([784 48 10], 1)\r\nEPOCH No.1\r\n[ 0]  949 \/  980 ( 96.8%)\r\n[ 1] 1118 \/ 1135 ( 98.5%)\r\n[ 2]  924 \/ 1032 ( 89.5%)\r\n[ 3]    5 \/ 1010 (  0.5%)\u3000\u2190\uff1f\uff1f\uff1f\r\n[ 4]  908 \/  982 ( 92.5%)\r\n[ 5]  781 \/  892 ( 87.6%)\r\n[ 6]  882 \/  958 ( 92.1%)\r\n[ 7]  906 \/ 1028 ( 88.1%)\r\n[ 8]  822 \/  974 ( 84.4%)\r\n[ 9]  884 \/ 1009 ( 87.6%)\r\nTotal  8179 \/ 10000 ( 81.8%)<\/pre>\n<p>(4) 3\u5c64 [784]-[64]-[10] <span class=\"my_fc_blueBBig\">89.6%(-1.2%)<\/span><\/p>\n<pre>octave:5&gt; NNET_control([784 64 10], 1)\r\nEPOCH No.1\r\n[ 0]  945 \/  980 ( 96.4%)\r\n[ 1] 1114 \/ 1135 ( 98.1%)\r\n[ 2]  900 \/ 1032 ( 87.2%)\r\n[ 3]  915 \/ 1010 ( 90.6%)\r\n[ 4]  883 \/  982 ( 89.9%)\r\n[ 5]  735 \/  892 ( 82.4%)\r\n[ 6]  902 \/  958 ( 94.2%)\r\n[ 7]  903 \/ 1028 ( 87.8%)\r\n[ 8]  814 \/  974 ( 83.6%)\r\n[ 9]  851 \/ 1009 ( 84.3%)\r\nTotal  8962 \/ 10000 ( 89.6%)<\/pre>\n<p>(5) 3\u5c64 [784]-[128]-[10] <span class=\"my_fc_blueBBig\">83.9%(-7.6%)<\/span><\/p>\n<pre>octave:6&gt; NNET_control([784 128 10], 1)\r\nEPOCH No.1\r\n[ 0]  964 \/  980 ( 98.4%)\r\n[ 1] 1115 \/ 1135 ( 98.2%)\r\n[ 2]  944 \/ 1032 ( 91.5%)\r\n[ 3]  915 \/ 1010 ( 90.6%)\r\n[ 4]  903 \/  982 ( 92.0%)\r\n[ 5]  809 \/  892 ( 90.7%)\r\n[ 6]  886 \/  958 ( 92.5%)\r\n[ 7]  938 \/ 1028 ( 91.2%)\r\n[ 8]   24 \/  974 (  2.5%)\u3000\u2190\uff1f\uff1f\uff1f\r\n[ 9]  891 \/ 1009 ( 88.3%)\r\nTotal  8389 \/ 10000 ( 83.9%)<\/pre>\n<p>(6) 4\u5c64 [784]-[256]-[64]-[10] <span class=\"my_fc_blueBBig\">72.3%(-19.6%)<\/span><\/p>\n<pre>octave:7&gt; NNET_control([784 256 64 10], 1)\r\nEPOCH No.1\r\n[ 0]    1 \/  980 (  0.1%)\u3000\u2190\uff1f\uff1f\uff1f\r\n[ 1] 1113 \/ 1135 ( 98.1%)\r\n[ 2]  905 \/ 1032 ( 87.7%)\r\n[ 3]    0 \/ 1010 (  0.0%)\u3000\u2190\uff1f\uff1f\uff1f\r\n[ 4]  842 \/  982 ( 85.7%)\r\n[ 5]  789 \/  892 ( 88.5%)\r\n[ 6]  885 \/  958 ( 92.4%)\r\n[ 7]  932 \/ 1028 ( 90.7%)\r\n[ 8]  888 \/  974 ( 91.2%)\r\n[ 9]  875 \/ 1009 ( 86.7%)\r\nTotal  7230 \/ 10000 ( 72.3%)<\/pre>\n<p>\u3059\u3079\u3066\u306e\u30ec\u30a4\u30e4\u30fc\u69cb\u6210\u3067\u5168sigmoid\u7248\u306e\u30b9\u30b3\u30a2\u3092\u4e0b\u56de\u3063\u305f&#8230;<br \/>\ntanh\u306e\u4f7f\u3044\u65b9\u304c\u9593\u9055\u3063\u3066\u3044\u308b\u306e\u304b\uff1f<\/p>\n<h1 class=\"my_h\">3. \u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9<\/h1>\n<p>\u524d\u7248\u304b\u3089\u306e\u5909\u66f4\u306f\u4ee5\u4e0b\u306e7\u30d5\u30a1\u30a4\u30eb\u306e\u307f\u3002<\/p>\n<h3 class=\"my_h\">(1) NNET_control.m<\/h3>\n<pre>function NNET_control( num_unit_of_each_layer, num_EPOCH )\r\n\r\n  <span class=\"my_fc_green\">% \u5b66\u7fd2\u753b\u50cf\u30fb\u30e9\u30d9\u30eb\u3001\u30c6\u30b9\u30c8\u753b\u50cf\u30fb\u30e9\u30d9\u30eb\u3092\u30d5\u30a1\u30a4\u30eb\u304b\u3089\u8aad\u307f\u8fbc\u307f<\/span>\r\n  [train_img, train_lbl] = load_MNIST( '..\/data\/train-images-idx3-ubyte', '..\/data\/train-labels-idx1-ubyte' );\r\n  [test_img,  test_lbl ] = load_MNIST( '..\/data\/t10k-images-idx3-ubyte',  '..\/data\/t10k-labels-idx1-ubyte'  );\r\n\r\n  <span class=\"my_fc_green\">% \u5404\u753b\u50cf\u30c7\u30fc\u30bf\u3092 0.0\uff5e1.0\u306e\u7bc4\u56f2\u306b\u6b63\u898f\u5316<\/span>\r\n  train_img = train_img \/ 255;\r\n  test_img  = test_img  \/ 255;\r\n\r\n  <span class=\"my_fc_green\">% \u6307\u5b9a\u3055\u308c\u305f\u5c64\u6570\u3001\u30e6\u30cb\u30c3\u30c8\u6570\u3067\u30cb\u30e5\u30fc\u30e9\u30eb\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3092\u4f5c\u6210<\/span>\r\n  nn = NNET_setup( num_unit_of_each_layer );\r\n\r\n  <span class=\"my_fc_green\">% \u6307\u5b9aEPOCH\u56de\u6570\u3060\u3051\u7e70\u308a\u8fd4\u3059<\/span>\r\n  for epoch=1 : num_EPOCH\r\n\r\n    <span class=\"my_fc_green\">% \u5b66\u7fd2\u5b9f\u884c<\/span>\r\n    nn = NNET_learn( nn, train_img, train_lbl );\r\n\r\n    <span class=\"my_fc_green\">% \u30c6\u30b9\u30c8\u5b9f\u884c<\/span>\r\n    result = NNET_test( nn, test_img, test_lbl );\r\n\r\n    <span class=\"my_fc_green\">% \u30c6\u30b9\u30c8\u7d50\u679c\u3092\u8868\u793a<\/span>\r\n    printf('\\nEPOCH No.%d\\n', epoch);\r\n    for i=1: 10\r\n      printf('[%2d] %4d \/ %4d (%5.1f%%) \\n', i-1, result(i,2), result(i,1), result(i,2)\/result(i,1)*100);\r\n    end\r\n    sum_result = sum(result,1);\r\n    printf('Total %5d \/ %5d (%5.1f%%) \\n', sum_result(2), sum_result(1), sum_result(2)\/sum_result(1)*100);\r\n    fflush(1);\r\n  end\r\nend\r\n<\/pre>\n<h3 class=\"my_h\">(2) NNET_setup.m<\/h3>\n<pre>\r\nfunction nn = NNET_setup( num_unit_of_each_layer )\r\n\r\n  <span class=\"my_fc_green\">% \u4e71\u6570\u751f\u6210\u5668\u3092\u521d\u671f\u5316<\/span>\r\n  rand('seed', 0);\r\n\r\n  <span class=\"my_fc_green\">% \u6307\u5b9a\u3055\u308c\u305f\u5c64\u6570\u3092\u53d6\u5f97<\/span>\r\n  num_layer = numel( num_unit_of_each_layer );\r\n\r\n  <span class=\"my_fc_green\">% \u5168\u5c64\u3092\u521d\u671f\u5316<\/span>\r\n  for i=2 : num_layer\r\n\r\n    <span class=\"my_fc_green\">% \u73fe\u5c64\u3068\u524d\u5c64\u306e\u30e6\u30cb\u30c3\u30c8\u6570\u3092\u53d6\u5f97<\/span>\r\n    num_unit_pre = num_unit_of_each_layer( i - 1 );\r\n    num_unit     = num_unit_of_each_layer( i );\r\n\r\n    <span class=\"my_fc_green\">% \u5404\u7d50\u5408\u7dda\u306e\u8377\u91cd\u3092 -1\uff5e1\u306e\u4e00\u69d8\u5206\u5e03\u4e71\u6570\u3067\u521d\u671f\u5316<\/span>\r\n    nn.layer{i}.weight = -1 + rand( num_unit, num_unit_pre ) * 2;\r\n\r\n    <span class=\"my_fc_green\">% \u30d0\u30a4\u30a2\u30b9\u3092\u521d\u671f\u5316<\/span>\r\n    nn.layer{i}.bias = zeros( num_unit, 1 );\r\n\r\n    <span class=\"my_fc_green\">% \u6d3b\u6027\u5316\u95a2\u6570\u3092\u767b\u9332<\/span>\r\n    if i==num_layer\r\n      <span class=\"my_fc_green\">% \u51fa\u529b\u5c64\u3067\u3042\u308c\u3070sigmoid<\/span>\r\n      nn.layer{i}.actfunc  = @act_sigmoid;\r\n      nn.layer{i}.dactfunc = @act_sigmoid_d;\r\n    else\r\n      <span class=\"my_fc_green\">% \u96a0\u308c\u5c64\u3067\u3042\u308c\u3070tanh<\/span>\r\n      nn.layer{i}.actfunc  = @act_tanh;\r\n      nn.layer{i}.dactfunc = @act_tanh_d;\r\n    end\r\n  end\r\nend\r\n<\/pre>\n<h3 class=\"my_h\">(3) NNET_propagation_forward.m<\/h3>\n<pre>\r\nfunction nn = NNET_propagation_forward( nn, train_img )\r\n\r\n  <span class=\"my_fc_green\">% \u5165\u529b\u5c64\u306e\u51fa\u529b\u5024\u3092\u8a18\u61b6<\/span>\r\n  nn.layer{1}.out = train_img(:);   % [n0][1]\r\n\r\n  <span class=\"my_fc_green\">% \u5168\u5c64\u306b\u3064\u3044\u3066\u9806\u4f1d\u64ad\u3092\u5b9f\u884c<\/span>\r\n  for i=2 : numel(nn.layer)\r\n\r\n    <span class=\"my_fc_green\">% a = \u03a3wz + bias    w[n1][n0] z[n0][1] bias[n1][1]<\/span>\r\n    nn.layer{i}.actprm = nn.layer{i}.weight * nn.layer{i-1}.out + nn.layer{i}.bias;\r\n\r\n    <span class=\"my_fc_green\">% out = sigmoid(a)   out[n1][1]<\/span>\r\n    nn.layer{i}.out = nn.layer{i}.actfunc( nn.layer{i}.actprm );\r\n  end\r\nend\r\n<\/pre>\n<h3 class=\"my_h\">(4) NNET_propagation_back.m<\/h3>\n<pre>\r\nfunction nn = NNET_propagation_back( nn, train_lbl )\r\n\r\n  <span class=\"my_fc_green\">% \u5c64\u6570\u3092\u53d6\u5f97<\/span>\r\n  num_layer = numel(nn.layer);\r\n\r\n  <span class=\"my_fc_green\">% \u51fa\u529b\u5c64\u3067\u691c\u51fa\u3055\u308c\u305f\u8aa4\u5dee\u91cf\u3068\u9006\u4f1d\u64ad\u3059\u308b\u52fe\u914d\u306e\u521d\u671f\u5024\u3092\u7b97\u51fa<\/span>\r\n  [err, nn.layer{num_layer}.grad] = lossfunc(nn.layer{num_layer}.out, train_lbl);\r\n\r\n  <span class=\"my_fc_green\">% \u5168\u5c64\u306b\u3064\u3044\u3066\u8aa4\u5dee\u9006\u4f1d\u64ad\u3092\u5b9f\u884c<\/span>\r\n  for i=num_layer : -1 : 2\r\n\r\n    <span class=\"my_fc_green\">% \u76f4\u524d\u5c64\u306e\u5404\u30cb\u30e5\u30fc\u30ed\u30f3\u306b\u4f1d\u64ad\u3059\u308b\u52fe\u914d\u3092\u7b97\u51fa\r\n    %  \u03b4out                    \r\n    %  ----- = w x h'(a)        \r\n    %  \u03b4in                     \r\n    %           |       \u03b4out|  \r\n    %  grad = \u03a3|gout x -----|  \r\n    %           |       \u03b4in |  <\/span>\r\n\r\n    <span class=\"my_fc_green\">% \u914d\u5217\u8981\u7d20\u6570\u306e\u540c\u30582\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u5148\u306b\u8a08\u7b97  grad[n1][1] out[n1][1]<\/span>\r\n    derr = nn.layer{i}.grad .* nn.layer{i}.dactfunc(nn.layer{i}.out);\r\n\r\n    <span class=\"my_fc_green\">% \u03a3(w\u30fbderr)  w[n1][n0] derr[n1][1] grad[n0][1]<\/span>\r\n    nn.layer{i-1}.grad = nn.layer{i}.weight' * derr;\r\n\r\n    <span class=\"my_fc_green\">% \u7d50\u5408\u8377\u91cd\u306e\u4fee\u6b63\u91cf\u3092\u7b97\u51fa    \r\n    %  \u03b4E                      \r\n    %  ---- = grad\u30fbh'(a)\u30fbout  \r\n    %  \u03b4w                      \r\n    % IN\u5074\u30e6\u30cb\u30c3\u30c8\uff0dOUT\u5074\u30e6\u30cb\u30c3\u30c8\u306e\u7d44\u307f\u5408\u308f\u305b\u3054\u3068\u306b\u7b97\u51fa out[n0][1] derr[n1][1] dw[n1][n0]<\/span>\r\n    nn.layer{i}.dweight = derr * nn.layer{i-1}.out';\r\n\r\n    <span class=\"my_fc_green\">% \u30d0\u30a4\u30a2\u30b9\u306e\u4fee\u6b63\u91cf\u3092\u7b97\u51fa<\/span>\r\n    nn.layer{i}.dbias = derr;\r\n  end\r\nend\r\n<\/pre>\n<h3 class=\"my_h\">(5) act_sigmoid.m<\/h3>\n<pre>function y = act_sigmoid( x )\r\n  y = 1 .\/ (1 + exp(-x));   % sigmoid\r\nend<\/pre>\n<h3 class=\"my_h\">(6) act_tanh.m<\/h3>\n<pre>function y = act_tanh( x )\r\n  y = tanh(x);\r\nend<\/pre>\n<h3 class=\"my_h\">(7) act_tanh_d.m<\/h3>\n<pre>function y = act_tanh_d( x )\r\n  y = 1 - x.^2;         % tanh\r\nend<\/pre>\n<p>\u30b7\u30f3\u30d7\u30eb\u69cb\u6210\u521d\u7248\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u306f\u3053\u3061\u3089\u3002<br \/>\n<a href=\"https:\/\/www.dogrow.net\/nnet\/blog4\/\" target=\"_blank\" rel=\"noopener noreferrer\">(4) \u30b7\u30f3\u30d7\u30eb\u69cb\u6210\u306e\u521d\u7248\u306f\u6b63\u89e3\u738791%<\/a><\/p>\n<hr class=\"my_hr_bottom\">\n","protected":false},"excerpt":{"rendered":"<p>1. sigmoid\u306e\u4ee3\u308f\u308a\u306btanh \u6d3b\u6027\u5316\u95a2\u6570\u306f sigmoid \u306e\u4ed6\u306b tanh \u3082\u4f7f\u7528\u3059\u308b\u3089\u3057\u3044\u3002 \u5206\u985e\u30bf\u30b9\u30af\u3067\u4f7f\u3046\u6d3b\u6027\u5316\u95a2\u6570\u306f\u3001\u5165\u529b\u5024\u306b\u5bfe\u3057\u3066\u51fa\u529b\u5024\u304c\u4e00\u5b9a\u7bc4\u56f2\u5185\u306b\u5236\u9650\u3055\u308c\u308b\u306a\u3089\u3070\u3001\u3069\u3093\u306a\u95a2\u6570\u3067\u3082\u3088\u3044\u3089\u3057\u3044\u3002 \u4e21\u2026 <span class=\"read-more\"><a href=\"https:\/\/www.dogrow.net\/nnet\/blog7\/\">\u7d9a\u304d\u3092\u8aad\u3080 &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[18,6],"tags":[],"class_list":["post-78","post","type-post","status-publish","format-standard","hentry","category-mnist","category-6"],"views":9893,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.dogrow.net\/nnet\/wp-json\/wp\/v2\/posts\/78","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dogrow.net\/nnet\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dogrow.net\/nnet\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dogrow.net\/nnet\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dogrow.net\/nnet\/wp-json\/wp\/v2\/comments?post=78"}],"version-history":[{"count":37,"href":"https:\/\/www.dogrow.net\/nnet\/wp-json\/wp\/v2\/posts\/78\/revisions"}],"predecessor-version":[{"id":2539,"href":"https:\/\/www.dogrow.net\/nnet\/wp-json\/wp\/v2\/posts\/78\/revisions\/2539"}],"wp:attachment":[{"href":"https:\/\/www.dogrow.net\/nnet\/wp-json\/wp\/v2\/media?parent=78"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dogrow.net\/nnet\/wp-json\/wp\/v2\/categories?post=78"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dogrow.net\/nnet\/wp-json\/wp\/v2\/tags?post=78"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}