<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 將 TensorFlow 投入生產 如果我們想在生產環境中使用我們的機器學習腳本,我們首先需要考慮一些要點作為最佳實踐。在本節中,我們將概述其中的一些內容。 ## 做好準備 在本文中,我們想總結并濃縮將 TensorFlow 投入生產的各種技巧。我們將介紹如何最好地保存和加載詞匯表,圖,變量和模型檢查點。我們還將討論如何使用 TensorFlow 的命令行參數解析器并更改 TensorFlow 的日志記錄詳細程度。 ## 操作步驟 1. 運行 TensorFlow 程序時,我們可能需要檢查內存中是否已存在其他圖會話,或者在調試程序后是否清除了圖會話。我們可以使用以下命令行來完成此任務: ```py from tensorflow.python.framework import ops ops.reset_default_graph() ``` 1. 在處理文本(或任何數據管道)時,我們需要確保我們保存處理數據的方式,以便我們可以以相同的方式處理未來的評估數據。例如,如果我們處理文本,我們需要確保我們可以保存并加載詞匯表。以下代碼是如何使用`JSON`庫保存詞匯表字典的示例: ```py import json word_list = ['to', 'be', 'or', 'not', 'to', 'be'] vocab_list = list(set(word_list)) vocab2ix_dict = dict(zip(vocab_list, range(len(vocab_list)))) ix2vocab_dict = {val:key for key,val in vocab2ix_dict.items()} # Save vocabulary import json with open('vocab2ix_dict.json', 'w') as file_conn: json.dump(vocab2ix_dict, file_conn) # Load vocabulary with open('vocab2ix_dict.json', 'r') as file_conn: vocab2ix_dict = json.load(file_conn) ``` > 在這里,我們以`JSON`格式保存了詞匯詞典,但我們也可以將其保存在`text`文件,`csv`甚至二進制格式中。如果詞匯量很大,則首選二進制文件。您還可以考慮使用 pickle 庫來創建`pkl`二進制文件,但請注意,pickle 文件在庫和 Python 版本之間不能很好地轉換。 1. 為了保存模型圖和變量,我們創建了一個`Saver()`操作并將其添加到圖中。建議我們在訓練期間定期保存模型。要保存模型,請輸入以下代碼: ```py After model declaration, add a saving operations saver = tf.train.Saver() # Then during training, save every so often, referencing the training generation for i in range(generations): ... if i%save_every == 0: saver.save(sess, 'my_model', global_step=step) # Can also save only specific variables: saver = tf.train.Saver({"my_var": my_variable}) ``` > 請注意,`Saver()`操作也會采用其他參數。如前面的示例所示,它可以使用變量和張量字典來保存特定元素。每隔`n`小時也可以檢查一次,定期執行保存操作。默認情況下,保存操作僅保留最后五個模型保存(出于空間考慮)。可以使用`maximum_to_keep`選項更改此設置。 1. 在保存模型之前,請務必命名模型的重要操作。如果 TensorFlow 沒有名稱,則沒有簡單的方法來加載特定的占位符,操作或變量。 TensorFlow 中的大多數操作和函數都接受`name`參數,如下例所示: ```py conv_weights = tf.Variable(tf.random_normal(), name='conv_weights') loss = tf.reduce_mean(... , name='loss') ``` 1. TensorFlow 還可以使用`tf.apps.flags`庫在命令行上輕松執行 arg-parsing。使用這些函數,我們可以定義字符串,浮點數,整數或布爾值的命令行參數,如下面的代碼片段所示。使用這些標志定義,我們可以運行`tf.app.run()`,它將使用以下標志參數運行`main()`函數: ```py tf.flags.DEFINE_string("worker_locations", "", "List of worker addresses.") tf.flags.DEFINE_float('learning_rate', 0.01, 'Initial learning rate.') tf.flags.DEFINE_integer('generations', 1000, 'Number of training generations.') tf.flags.DEFINE_boolean('run_unit_tests', False, 'If true, run tests.') FLAGS = tf.flags.FLAGS # Need to define a 'main' function for the app to run def main(_): worker_ips = FLAGS.worker_locations.split(",") learning_rate = FLAGS.learning_rate generations = FLAGS.generations run_unit_tests = FLAGS.run_unit_tests # Run the Tensorflow app if __name__ == "__main__": # The following is looking for a "main()" function to run and will pass. tf.app.run() # Can modify this to be more custom: tf.app.run(main=my_main_function(), argv=my_arguments) ``` 1. TensorFlow 具有內置日志記錄,我們可以為其設置級別參數。我們可以設定的水平是`DEBUG`,`INFO`,`WARN`,`ERROR`和`FATAL`。默認為`WARN`,如下所示: ```py tf.logging.set_verbosity(tf.logging.WARN) # WARN is the default value, but to see more information, you can set it to # INFO or DEBUG tf.logging.set_verbosity(tf.logging.DEBUG) ``` ## 工作原理 在本節中,我們提供了在 TensorFlow 中創建生產級代碼的提示。我們想介紹 app-flags,模型保存和日志記錄等概念,以便用戶可以使用這些工具一致地編寫代碼,并了解在其他代碼中看到這些工具時的含義。還有許多其他方法可以編寫好的生產代碼,但下面的秘籍中將顯示完整的示例。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看