原创 貪心算法和動態規劃的區別與聯繫

1. 聯繫 都是一種推導算法 都是分解成子問題來求解,都需要具有最優子結構 2. 區別 貪心:每一步的最優解一定包含上一步的最優解,上一步之前的最優解則不作保留。動態規劃:全局最優解中一定包含某個局部最優解,但不一

原创 使用區間來簡化代碼思考

  Leetcode中移動零(https://leetcode-cn.com/problems/move-zeroes/)和快速排序的最初版本,本質上都可以使用區間來簡化代碼。   首先以移動零爲例,假設兩個循環變量分別爲jjj和

原创 NLTK使用匯總

1. LookupError: Resource not found.   例如在運行下列代碼時出現錯誤: from nltk.tokenize import word_tokenize tokenized_word = word

原创 NLP定義和機器翻譯

1. NLP定義   NLP(自然語言處理)= NLU(自然語言理解)+ NLG(自然語言生成)。   自然語言理解(Natural Language Understanding)是使計算機理解自然語言(人類語言文字)等,重在理解

原创 tensorflow.keras使用匯總(持續更新)

1. 查看可用計算資源 from tensorflow.python.client import device_lib print(device_lib.list_local_devices()) from keras impor

原创 Google Colab學習彙總

1. 如何在colab上打開tensorboard? 方法一: 1.1 安裝ngrok !wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip

原创 使用PIL進行圖片處理

1. 隨機旋轉和隨機縮放 from PIL import Image import numpy as np import os def scale_rotate_img(image, rotate_min=20, rotate_

原创 大數據處理經驗(持續更新)

先取少量數據跑代碼,確保代碼沒有語法和邏輯錯誤,再放到大量數據上面跑。 使用pandas的DataFrame表示數據的時候,對於int和float的默認爲int64和float64位,但實際可能不需要這樣的高精度表示。可通過以下

原创 使用Python進行英文單詞分割

  由於在一些場景中,所有的字母都連在了一起,所以我們需要將字母分割成單詞的形式。 1. 安裝 pip install -U symspellpy 2. 下載詞典 curl -LJO https://raw.githubuser

原创 知乎看山杯 專家發現算法大賽分享

1. 問題路由的前世今生 2. 冠軍隊伍分享

原创 Leetcode最大和最小子序和

最大子序和,動態規劃時間複雜度爲O(n),則假設每一步爲step, sf(x1)=x1sf(x_1)=x_1sf(x1​)=x1​ sf(x2)={sf(x1)+x2,sf(x1)+x2>x2x2,sf(x1)+x2<=x2sf

原创 代碼思路標準流程

  首先引入幾個基本概念。fff代表指定的函數。每一步(step)和每一輪(round)。假設爲二重循環,則外層循環一次代表走一輪,而內層循環一次代表走一步。如果是一重循環,則循環一次代表走一步。   以冒泡排序爲例,假設冒泡排序

原创 Leetcode學習

1. 刷題方法   自頂向下 VS 自底向上。兩種方法各有優劣。那怎麼才能達到最好的學習效果呢?   入門時使用自底向上的學習方法,以玩遊戲爲例,瞭解了基本的遊戲規則,然後就先玩起來,在玩的過程中逐漸熟悉。但這樣的玩法,必然會在一

原创 Pytorch使用匯總

1. 不要在循環訓練中直接將loss進行append(cannot allocate memory)   默認情況下,涉及需要求導/梯度gradients變量的計算將保存在內存中。計算中避免使用這些變量,例如在跟蹤統計數據時,這些

原创 Centos7修改鏡像源和安裝基本庫

1. 修改鏡像源   使用的鏡像源爲清華大學開源軟件鏡像站,修改鏡像源參考鏈接爲:https://mirror.tuna.tsinghua.edu.cn/help/centos/ 1.1 備份並修改原有文件   備份代碼爲: cp