tensorflow源码例子mnist源码——mnist.py_修炼打怪的小乌龟的博客-程序员宅基地

<code class="language-python hljs  has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># Copyright 2015 The TensorFlow Authors. All Rights Reserved.</span>
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">#</span>
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># Licensed under the Apache License, Version 2.0 (the "License");</span>
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># you may not use this file except in compliance with the License.</span>
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># You may obtain a copy of the License at</span>
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">#</span>
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">#     http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">#</span>
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># Unless required by applicable law or agreed to in writing, software</span>
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># distributed under the License is distributed on an "AS IS" BASIS,</span>
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># See the License for the specific language governing permissions and</span>
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># limitations under the License.</span>
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># ==============================================================================</span>

<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"""Builds the MNIST network.

Implements the inference/loss/training pattern for model building.

1. inference() - Builds the model as far as is required for running the network
forward to make predictions.
2. loss() - Adds to the inference model the layers required to generate loss.
3. training() - Adds to the loss model the Ops required to generate and
apply gradients.

This file is used by the various "fully_connected_*.py" files and not meant to
be run.
"""</span>
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">from</span> __future__ <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">import</span> absolute_import
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">from</span> __future__ <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">import</span> division
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">from</span> __future__ <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">import</span> print_function

<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">import</span> math

<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">import</span> tensorflow <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">as</span> tf

<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># The MNIST dataset has 10 classes, representing the digits 0 through 9.</span>
NUM_CLASSES = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">10</span>

<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># The MNIST images are always 28x28 pixels.</span>
IMAGE_SIZE = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">28</span>
IMAGE_PIXELS = IMAGE_SIZE * IMAGE_SIZE


<span class="hljs-function" style="box-sizing: border-box;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">def</span> <span class="hljs-title" style="box-sizing: border-box;">inference</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(images, hidden1_units, hidden2_units)</span>:</span>
  <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"""Build the MNIST model up to where it may be used for inference.

  Args:
    images: Images placeholder, from inputs().
    hidden1_units: Size of the first hidden layer.
    hidden2_units: Size of the second hidden layer.

  Returns:
    softmax_linear: Output tensor with the computed logits.
  """</span>
  <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># Hidden 1</span>
  <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">with</span> tf.name_scope(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'hidden1'</span>):
    weights = tf.Variable(
        tf.truncated_normal([IMAGE_PIXELS, hidden1_units],
                            stddev=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.0</span> / math.sqrt(float(IMAGE_PIXELS))),
        name=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'weights'</span>)
    biases = tf.Variable(tf.zeros([hidden1_units]),
                         name=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'biases'</span>)
    hidden1 = tf.nn.relu(tf.matmul(images, weights) + biases)
  <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># Hidden 2</span>
  <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">with</span> tf.name_scope(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'hidden2'</span>):
    weights = tf.Variable(
        tf.truncated_normal([hidden1_units, hidden2_units],
                            stddev=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.0</span> / math.sqrt(float(hidden1_units))),
        name=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'weights'</span>)
    biases = tf.Variable(tf.zeros([hidden2_units]),
                         name=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'biases'</span>)
    hidden2 = tf.nn.relu(tf.matmul(hidden1, weights) + biases)
  <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># Linear</span>
  <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">with</span> tf.name_scope(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'softmax_linear'</span>):
    weights = tf.Variable(
        tf.truncated_normal([hidden2_units, NUM_CLASSES],
                            stddev=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.0</span> / math.sqrt(float(hidden2_units))),
        name=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'weights'</span>)
    biases = tf.Variable(tf.zeros([NUM_CLASSES]),
                         name=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'biases'</span>)
    logits = tf.matmul(hidden2, weights) + biases
  <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">return</span> logits


<span class="hljs-function" style="box-sizing: border-box;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">def</span> <span class="hljs-title" style="box-sizing: border-box;">loss</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(logits, labels)</span>:</span>
  <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"""Calculates the loss from the logits and the labels.

  Args:
    logits: Logits tensor, float - [batch_size, NUM_CLASSES].
    labels: Labels tensor, int32 - [batch_size].

  Returns:
    loss: Loss tensor of type float.
  """</span>
  labels = tf.to_int64(labels)
  cross_entropy = tf.nn.sparse_softmax_cross_entropy_with_logits(
      logits, labels, name=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'xentropy'</span>)
  loss = tf.reduce_mean(cross_entropy, name=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'xentropy_mean'</span>)
  <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">return</span> loss


<span class="hljs-function" style="box-sizing: border-box;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">def</span> <span class="hljs-title" style="box-sizing: border-box;">training</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(loss, learning_rate)</span>:</span>
  <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"""Sets up the training Ops.

  Creates a summarizer to track the loss over time in TensorBoard.

  Creates an optimizer and applies the gradients to all trainable variables.

  The Op returned by this function is what must be passed to the
  `sess.run()` call to cause the model to train.

  Args:
    loss: Loss tensor, from loss().
    learning_rate: The learning rate to use for gradient descent.

  Returns:
    train_op: The Op for training.
  """</span>
  <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># Add a scalar summary for the snapshot loss.</span>
  tf.scalar_summary(loss.op.name, loss)
  <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># Create the gradient descent optimizer with the given learning rate.</span>
  optimizer = tf.train.GradientDescentOptimizer(learning_rate)
  <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># Create a variable to track the global step.</span>
  global_step = tf.Variable(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>, name=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'global_step'</span>, trainable=<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">False</span>)
  <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># Use the optimizer to apply the gradients that minimize the loss</span>
  <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># (and also increment the global step counter) as a single training step.</span>
  train_op = optimizer.minimize(loss, global_step=global_step)
  <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">return</span> train_op


<span class="hljs-function" style="box-sizing: border-box;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">def</span> <span class="hljs-title" style="box-sizing: border-box;">evaluation</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(logits, labels)</span>:</span>
  <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"""Evaluate the quality of the logits at predicting the label.

  Args:
    logits: Logits tensor, float - [batch_size, NUM_CLASSES].
    labels: Labels tensor, int32 - [batch_size], with values in the
      range [0, NUM_CLASSES).

  Returns:
    A scalar int32 tensor with the number of examples (out of batch_size)
    that were predicted correctly.
  """</span>
  <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># For a classifier model, we can use the in_top_k Op.</span>
  <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># It returns a bool tensor with shape [batch_size] that is true for</span>
  <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># the examples where the label is in the top k (here k=1)</span>
  <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># of all logits for that example.</span>
  correct = tf.nn.in_top_k(logits, labels, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>)
  <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># Return the number of true entries.</span>
  <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">return</span> tf.reduce_sum(tf.cast(correct, tf.int32))
</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li><li style="box-sizing: border-box; padding: 0px 5px;">32</li><li style="box-sizing: border-box; padding: 0px 5px;">33</li><li style="box-sizing: border-box; padding: 0px 5px;">34</li><li style="box-sizing: border-box; padding: 0px 5px;">35</li><li style="box-sizing: border-box; padding: 0px 5px;">36</li><li style="box-sizing: border-box; padding: 0px 5px;">37</li><li style="box-sizing: border-box; padding: 0px 5px;">38</li><li style="box-sizing: border-box; padding: 0px 5px;">39</li><li style="box-sizing: border-box; padding: 0px 5px;">40</li><li style="box-sizing: border-box; padding: 0px 5px;">41</li><li style="box-sizing: border-box; padding: 0px 5px;">42</li><li style="box-sizing: border-box; padding: 0px 5px;">43</li><li style="box-sizing: border-box; padding: 0px 5px;">44</li><li style="box-sizing: border-box; padding: 0px 5px;">45</li><li style="box-sizing: border-box; padding: 0px 5px;">46</li><li style="box-sizing: border-box; padding: 0px 5px;">47</li><li style="box-sizing: border-box; padding: 0px 5px;">48</li><li style="box-sizing: border-box; padding: 0px 5px;">49</li><li style="box-sizing: border-box; padding: 0px 5px;">50</li><li style="box-sizing: border-box; padding: 0px 5px;">51</li><li style="box-sizing: border-box; padding: 0px 5px;">52</li><li style="box-sizing: border-box; padding: 0px 5px;">53</li><li style="box-sizing: border-box; padding: 0px 5px;">54</li><li style="box-sizing: border-box; padding: 0px 5px;">55</li><li style="box-sizing: border-box; padding: 0px 5px;">56</li><li style="box-sizing: border-box; padding: 0px 5px;">57</li><li style="box-sizing: border-box; padding: 0px 5px;">58</li><li style="box-sizing: border-box; padding: 0px 5px;">59</li><li style="box-sizing: border-box; padding: 0px 5px;">60</li><li style="box-sizing: border-box; padding: 0px 5px;">61</li><li style="box-sizing: border-box; padding: 0px 5px;">62</li><li style="box-sizing: border-box; padding: 0px 5px;">63</li><li style="box-sizing: border-box; padding: 0px 5px;">64</li><li style="box-sizing: border-box; padding: 0px 5px;">65</li><li style="box-sizing: border-box; padding: 0px 5px;">66</li><li style="box-sizing: border-box; padding: 0px 5px;">67</li><li style="box-sizing: border-box; padding: 0px 5px;">68</li><li style="box-sizing: border-box; padding: 0px 5px;">69</li><li style="box-sizing: border-box; padding: 0px 5px;">70</li><li style="box-sizing: border-box; padding: 0px 5px;">71</li><li style="box-sizing: border-box; padding: 0px 5px;">72</li><li style="box-sizing: border-box; padding: 0px 5px;">73</li><li style="box-sizing: border-box; padding: 0px 5px;">74</li><li style="box-sizing: border-box; padding: 0px 5px;">75</li><li style="box-sizing: border-box; padding: 0px 5px;">76</li><li style="box-sizing: border-box; padding: 0px 5px;">77</li><li style="box-sizing: border-box; padding: 0px 5px;">78</li><li style="box-sizing: border-box; padding: 0px 5px;">79</li><li style="box-sizing: border-box; padding: 0px 5px;">80</li><li style="box-sizing: border-box; padding: 0px 5px;">81</li><li style="box-sizing: border-box; padding: 0px 5px;">82</li><li style="box-sizing: border-box; padding: 0px 5px;">83</li><li style="box-sizing: border-box; padding: 0px 5px;">84</li><li style="box-sizing: border-box; padding: 0px 5px;">85</li><li style="box-sizing: border-box; padding: 0px 5px;">86</li><li style="box-sizing: border-box; padding: 0px 5px;">87</li><li style="box-sizing: border-box; padding: 0px 5px;">88</li><li style="box-sizing: border-box; padding: 0px 5px;">89</li><li style="box-sizing: border-box; padding: 0px 5px;">90</li><li style="box-sizing: border-box; padding: 0px 5px;">91</li><li style="box-sizing: border-box; padding: 0px 5px;">92</li><li style="box-sizing: border-box; padding: 0px 5px;">93</li><li style="box-sizing: border-box; padding: 0px 5px;">94</li><li style="box-sizing: border-box; padding: 0px 5px;">95</li><li style="box-sizing: border-box; padding: 0px 5px;">96</li><li style="box-sizing: border-box; padding: 0px 5px;">97</li><li style="box-sizing: border-box; padding: 0px 5px;">98</li><li style="box-sizing: border-box; padding: 0px 5px;">99</li><li style="box-sizing: border-box; padding: 0px 5px;">100</li><li style="box-sizing: border-box; padding: 0px 5px;">101</li><li style="box-sizing: border-box; padding: 0px 5px;">102</li><li style="box-sizing: border-box; padding: 0px 5px;">103</li><li style="box-sizing: border-box; padding: 0px 5px;">104</li><li style="box-sizing: border-box; padding: 0px 5px;">105</li><li style="box-sizing: border-box; padding: 0px 5px;">106</li><li style="box-sizing: border-box; padding: 0px 5px;">107</li><li style="box-sizing: border-box; padding: 0px 5px;">108</li><li style="box-sizing: border-box; padding: 0px 5px;">109</li><li style="box-sizing: border-box; padding: 0px 5px;">110</li><li style="box-sizing: border-box; padding: 0px 5px;">111</li><li style="box-sizing: border-box; padding: 0px 5px;">112</li><li style="box-sizing: border-box; padding: 0px 5px;">113</li><li style="box-sizing: border-box; padding: 0px 5px;">114</li><li style="box-sizing: border-box; padding: 0px 5px;">115</li><li style="box-sizing: border-box; padding: 0px 5px;">116</li><li style="box-sizing: border-box; padding: 0px 5px;">117</li><li style="box-sizing: border-box; padding: 0px 5px;">118</li><li style="box-sizing: border-box; padding: 0px 5px;">119</li><li style="box-sizing: border-box; padding: 0px 5px;">120</li><li style="box-sizing: border-box; padding: 0px 5px;">121</li><li style="box-sizing: border-box; padding: 0px 5px;">122</li><li style="box-sizing: border-box; padding: 0px 5px;">123</li><li style="box-sizing: border-box; padding: 0px 5px;">124</li><li style="box-sizing: border-box; padding: 0px 5px;">125</li><li style="box-sizing: border-box; padding: 0px 5px;">126</li><li style="box-sizing: border-box; padding: 0px 5px;">127</li><li style="box-sizing: border-box; padding: 0px 5px;">128</li><li style="box-sizing: border-box; padding: 0px 5px;">129</li><li style="box-sizing: border-box; padding: 0px 5px;">130</li><li style="box-sizing: border-box; padding: 0px 5px;">131</li><li style="box-sizing: border-box; padding: 0px 5px;">132</li><li style="box-sizing: border-box; padding: 0px 5px;">133</li><li style="box-sizing: border-box; padding: 0px 5px;">134</li><li style="box-sizing: border-box; padding: 0px 5px;">135</li><li style="box-sizing: border-box; padding: 0px 5px;">136</li><li style="box-sizing: border-box; padding: 0px 5px;">137</li><li style="box-sizing: border-box; padding: 0px 5px;">138</li><li style="box-sizing: border-box; padding: 0px 5px;">139</li><li style="box-sizing: border-box; padding: 0px 5px;">140</li><li style="box-sizing: border-box; padding: 0px 5px;">141</li><li style="box-sizing: border-box; padding: 0px 5px;">142</li><li style="box-sizing: border-box; padding: 0px 5px;">143</li><li style="box-sizing: border-box; padding: 0px 5px;">144</li><li style="box-sizing: border-box; padding: 0px 5px;">145</li><li style="box-sizing: border-box; padding: 0px 5px;">146</li><li style="box-sizing: border-box; padding: 0px 5px;">147</li><li style="box-sizing: border-box; padding: 0px 5px;">148</li><li style="box-sizing: border-box; padding: 0px 5px;">149</li><li style="box-sizing: border-box; padding: 0px 5px;">150</li><li style="box-sizing: border-box; padding: 0px 5px;">151</li></ul><div class="save_code tracking-ad" data-mod="popu_249" style="box-sizing: border-box; position: absolute; height: 60px; right: 30px; top: 5px; color: rgb(255, 255, 255); cursor: pointer; z-index: 2;"><a target=_blank target="_blank" style="color: rgb(202, 0, 0); box-sizing: border-box;"><img src="http://static.blog.csdn.net/images/save_snippets.png" style="border: none; box-sizing: border-box; max-width: 100%;" alt="" /></a></div>

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u010417185/article/details/52057861

智能推荐

CodeForces Round #191 (327C) - Magic Five 等比数列求和的快速幂取模_acm - magic five-程序员宅基地

很久以前做过此类问题..就因为太久了..这题想了很久想不出..卡在推出等比的求和公式,有除法运算,无法快速幂取模...看到了http://blog.csdn.net/yangshuolll/article/details/9247759才想起等比数列的快速幂取模....求等比为k的等比数列之和T[n]..当n为偶数..T[n] = T[n/2] + pow(k,n/2) * T[n_acm - magic five

深度linux系统控制中心,在深度Deepin 20.2系统中无法打开控制中心的解决方法-程序员宅基地

不管是升级还是全新安装的深度Deepin 20.2操作系统,都无法正常的打开控制中心,如果你也有此问题,可按以下解决方法处理。原因因为分析,造成控制中心崩溃,产生BUG是由/usr/lib/dde-control-center/modules/libdeepin-recovery-plugin.so引起的。尝试的方案,但不见效1、sudo apt reinstall dde-control-cen..._deepin控制中心打不开

HDU 2955(0-1背包问题)-程序员宅基地

RobberiesTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1261 Accepted Submission(s): 453Problem DescriptionThe aspiring Roy the Robber has seen a lot of American movies, an

利用ODBC连接数据库_如何使用odbc连接数据库-程序员宅基地

例子用到的数据库是MySql添加数据源创建MFC 基佬于对话框的工程ODBC在工程里添加头文件#include "afxdb.h"创建CDatabase类的对象CDatabase db;接下来就是连接数据库了,在OnInitDialog函数里添加 //判断数据库是否打开 if(!db.IsOpen()) { //连接数_如何使用odbc连接数据库

JavaScript运动框架-程序员宅基地

function getStyle(obj, attr) { return obj.currentStyle ? obj.currentStyle[attr] : getComputedStyle(obj, false)[attr];}function startMove(obj, json, fn) { clearInterval(obj.timer); obj.time_javascript运动框架

linux shell expr除以0,linuxshell中的expr运算_大风吹牛的博客-程序员宅基地

在Linux shell命令中expr虽然不是很起眼,但是它的作用是非常大的!到目前为止,我个人看来最大的作用就是两个——四则运算和字符串的操作。先说四则运算,在Shell中四则运算不能简简单单的加减乘除,应该要写如下的格式:$val1=`$val2 - 1`其中“=”后面用“`”包住表达式,这个符号在Shell中十分有用,是Tab键上面“~”的原来形式。可以用来将很多命令的结果保存到一个变量中去...

随便推点

Java实现的HMM代码_hmm 模型的c语言实现-程序员宅基地

下载地址:http://cs.nyu.edu/courses/spring04/G22.2591-001/BW%20demo/写得不错,容易理解。_hmm 模型的c语言实现

c语言计算日出日落时间_日出日落时间 计算软件 日出日落时间计算公式-程序员宅基地

计算日出时间。日落时间。昼长。夜长的公式或方法是时间计算最简单的。昼半球的平分线上是12点。对应的夜半球平分经线就是零点。希望能对你有所帮助。这些只跟经度有关系。如果是半球俯视图就是北半球逆时针转。经度每差一度时间差四分钟。向东就是向右边时间要加,向西时间要减。不知道你明白了没有。箭头为东方,就是昼长。或者十五度为一小时直接数出多少个十五度就是多少小时。再用24减昼长,就是夜长。南半球顺时针转。所..._日出日落时间计算公式

简单的冯氏光照模型_计算漫反射光照需要的数据是什么-程序员宅基地

冯氏光照模型分为三个部分:环境光 Ambient 即使在完全黑暗的情况下,世界上也通常会有一些光亮(比如:月光、远处分散的光源),物体不会是完全黑暗的。漫反射光 Diffuse 视觉上最显著的分量。物体的某一部分越是正对着光源,那么这部分就越亮。镜面光 Specular 模拟有光泽物体上的亮点。这个颜色会更加倾向于光的颜色。环境光照void main(){ ..._计算漫反射光照需要的数据是什么

Vue的学习笔记 ---- 012 Vue的各种指令介绍-程序员宅基地

v-text 会以原样输出字符串 v-html 会以html语法解析字符串输出 v-show 根据表达式的布尔值进行显示效果 v-if 和v-show一样,但是它会销毁组件并且重建 * v-for 和 v-if 一起使用时,v-for的优先级比v-if更高 v-else 和v-if 一起使...

Elasticsearch存储深入详解-程序员宅基地

在本文中,我们将研究Elasticsearch的各个部分写入数据目录的文件。我们将查看节点,索引和分片级文件,并简要说明其内容,以便了解Elasticsearch写入磁盘的数据。 1、从Elasticsearch路径说起Elasticsearch配置了多个路径: path.home:运行Elasticsearch进程的用户的主目录。默认为Java系统属性user.dir,它是...

Spring Boot2 系列教程(十)Spring Boot 整合 Freemarker_spring boot 2.6.10是否支持freemarker-程序员宅基地

今天来聊聊 Spring Boot 整合 Freemarker。Freemarker 简介红尘小说 https://www.zuxs.net/这是一个相当老牌的开源的免费的模版引擎。通过 Freemarker 模版,我们可以将数据渲染成 HTML 网页、电子邮件、配置文件以及源代码等。Freemarker 不是面向最终用户的,而是一个 Java 类库,我们可以将之作为一个普通的组件嵌..._spring boot 2.6.10是否支持freemarker