diff --git a/code/nndl/index.html b/code/nndl/index.html index 44872e7..1393a92 100644 --- a/code/nndl/index.html +++ b/code/nndl/index.html @@ -1585,7 +1585,7 @@

yangzhang's Site

神经网络与深度学习

一些关于《神经网络与深度学习》的笔记

对神经网络与深度学习的理解

书中对整本书的结构如下,当不知道在学什么的时候,可以看一下这个图 @@ -1656,7 +1656,7 @@

具体问题具体分析 - 2025年1月17日 + 2025年1月21日 diff --git a/code/algorithm/index.html b/code/opt_alg/index.html similarity index 51% rename from code/algorithm/index.html rename to code/opt_alg/index.html index 2ae48af..abb789a 100644 --- a/code/algorithm/index.html +++ b/code/opt_alg/index.html @@ -8,7 +8,7 @@ - + @@ -21,7 +21,7 @@ - 算法的实现 - 黯然's Site + nndl-优化算法 - 黯然's Site @@ -205,7 +205,7 @@
- 算法的实现 + nndl-优化算法
@@ -1375,6 +1375,15 @@
+ + +
  • + + + 最小二乘法 + + +
  • @@ -1441,7 +1450,7 @@

    yangzhang's Site

    - + @@ -1450,17 +1459,203 @@

    yangzhang's Site

    - + -

    算法的实现

    +

    nndl-优化算法

    随机梯度下降法

    -

    随机梯度下降法

    +
    +随机梯度下降法 +
    +
    +
    +
    +
    import numpy as np
    +n = 500
    +m = 5
    +w = np.array([[3,2,6,1,7]]).T
    +b = 5
    +print('shape of w:',w.shape)
    +np.random.seed(42)
    +x = np.random.rand(m, n)
    +x_aug = np.pad(x, ((0, 1), (0, 0)), 'constant', constant_values=1)
    +# print(x_aug)
    +w_aug = np.pad(w, ((0, 1), (0, 0)), 'constant', constant_values=b)
    +y = np.dot(w_aug.T,x_aug)
    +print(y.shape)
    +# print(augmented_matrix)
    +# 添加高斯噪声 
    +mu, sigma = 0, 1 # 均值和标准差 
    +noise = np.random.normal(mu, sigma, y.shape) 
    +print(noise.shape)
    +y_noisy = y + noise
    +from sklearn.model_selection import train_test_split
    +
    +# 转置 x_aug 和 y_noisy 以进行打乱和分割
    +x_aug = x_aug.T
    +y_noisy = y_noisy.T
    +
    +# 将数据打乱并分成训练集和测试集
    +x_train, x_test, y_train, y_test = train_test_split(x_aug, y_noisy, test_size=0.2, random_state=42)
    +
    +# 输出结果
    +print("训练集 X 的形状:", x_train[:,:-1].shape)
    +print("测试集 X 的形状:", x_test.shape)
    +print("训练集 Y 的形状:", y_train.shape)
    +print("测试集 Y 的形状:", y_test.shape)
    +
    +
    +
    +
    # 线性模型函数
    +def line_fun(x, w, b):
    +    return np.dot(w.T, x)+b
    +
    +
    +# 设定一个平方损失函数的梯度优化
    +def gradient_optimization(x, y, w, b):
    +    y_pre = line_fun(x, w, b)
    +    grad_w = -(y - y_pre) * x
    +    grad_b = -(y - y_pre)
    +    # print(f"grad_w {grad_w.shape}, grad_b {grad_b.shape}")
    +    return grad_w, grad_b
    +# 损失函数 
    +def loss_function(x, y, k, b): 
    +    y_pre = line_fun(x, k, b) 
    +    return np.mean((y - y_pre) ** 2)
    +
    +
    +
    +
    # 设定学习变量w和b的初始值
    +w = np.ones((5, 1))  # 初始权重向量,维度为5*1
    +b = 0.0
    +learning_rate = 0.001
    +decay_rate = 0.5
    +
    +tolerance = 1e-6
    +max_epochs = 1000
    +min_improvement = 1e-6
    +patience = 10
    +
    +# 训练过程
    +previous_loss = float('inf')
    +improvement_streak = 0
    +
    +# 训练集循环
    +for i in range(max_epochs):
    +    learning_rate = 0.01 / (1 + decay_rate * i)
    +    current_loss = 0
    +    for n in range(x_train.shape[0]):
    +        x_n = x_train[n, :-1].reshape(5,1)  # 输入特征向量
    +        y_n = y_train[n]  # 目标值
    +        grad_w, grad_b = gradient_optimization(x_n, y_n, w, b)
    +        # print(f"grad_w {grad_w.T}, grad_b {grad_b}")
    +        w = w - learning_rate * grad_w
    +        b = b - learning_rate * grad_b
    +        current_loss += loss_function(x_n, y_n, w, b)
    +
    +    current_loss /= x_train.shape[0]
    +    if abs(previous_loss - current_loss) < min_improvement:
    +        improvement_streak += 1
    +    else:
    +        improvement_streak = 0
    +
    +    if improvement_streak >= patience:
    +        print(f"Training stopped after {i} epochs due to no significant improvement.")
    +        break
    +
    +    previous_loss = current_loss
    +
    +print(f"Final values: w={w.T},\n b={b}, loss={previous_loss}")
    +
    +
    +
    +
    +

    最小二乘法

    +
    +
    +
    +
    import numpy as np
    +from sklearn.model_selection import train_test_split
    +
    +n = 500
    +m = 5
    +w = np.array([[3,2,6,1,7]]).T
    +b = 5
    +np.random.seed(42)
    +x = np.random.rand(m, n)
    +x_aug = np.pad(x, ((0, 1), (0, 0)), 'constant', constant_values=1)
    +w_aug = np.pad(w, ((0, 1), (0, 0)), 'constant', constant_values=b)
    +y = np.dot(w_aug.T,x_aug)
    +
    +# 添加高斯噪声 
    +mu, sigma = 0, 1 # 均值和标准差 
    +noise = np.random.normal(mu, sigma, y.shape) 
    +y_noisy = y + noise
    +
    +
    +# 转置 x_aug 和 y_noisy 以进行打乱和分割
    +x_aug = x_aug.T
    +y_noisy = y_noisy.T
    +
    +# 将数据打乱并分成训练集和测试集
    +x_train, x_test, y_train, y_test = train_test_split(x_aug, y_noisy, test_size=0.2, random_state=42)
    +
    +# 输出结果
    +print("训练集 X 的形状:", x_train[:,:-1].shape)
    +print("测试集 X 的形状:", x_test.shape)
    +print("训练集 Y 的形状:", y_train.shape)
    +print("测试集 Y 的形状:", y_test.shape)
    +
    +
    +
    +
    # 线性模型函数
    +class Linear():
    +    def __init__(self, input_dim, output_dim):
    +        self.params = {}
    +        self.params['w'] = np.random.randn(input_dim, output_dim).astype(np.float32)
    +        self.params['b'] = np.random.randn(output_dim).astype(np.float32)
    +
    +
    +
    +
    def inverse_matrix(matrix):
    +    try:
    +        # 判断矩阵是否可逆
    +        if np.linalg.det(matrix) == 0:
    +            return None, "The matrix is not invertible"
    +        else:
    +            # 计算矩阵的逆
    +            inv_matrix = np.linalg.inv(matrix)
    +            return inv_matrix
    +    except np.linalg.LinAlgError as e:
    +        return None, f"An error occurred: {str(e)}"
    +
    +# 优化算法:
    +def optimizer_RLS(X, y, model, reg_lambda=0.001):
    +    x_mean_T = np.mean(X, axis=0).T
    +    y_mean = np.mean(y)
    +    x_sub = np.subtract(X,x_mean_T)
    +    # 计算w_star的第一项
    +    temp1 = inverse_matrix(np.dot(x_sub.T,x_sub)+reg_lambda*np.eye(x_sub.shape[1]))
    +    # 计算w_star的第二项
    +    temp2 = np.dot(x_sub.T,(y-y_mean))
    +    w_star = np.dot(temp1,temp2)
    +    b_star = y_mean - np.dot(x_mean_T, w_star)
    +
    +    model.params['w'] = w_star
    +    model.params['b'] = b_star
    +
    +model = Linear(5, 1)
    +optimizer_RLS(x_train[:,:-1], y_train, model)
    +print("w_pred:",model.params['w'], "b_pred: ", model.params['b']) # print model parameters
    +
    +
    +
    +
    @@ -1483,7 +1678,7 @@

    随机梯度下降法 - 2025年1月19日 + 2025年1月21日 @@ -1493,7 +1688,7 @@

    随机梯度下降法 - 2025年1月17日 + 2025年1月21日 diff --git a/feed_rss_created.xml b/feed_rss_created.xml index d13c6e9..51fc283 100644 --- a/feed_rss_created.xml +++ b/feed_rss_created.xml @@ -1 +1 @@ - 黯然's Sitehttps://lvista.site/https://github.com/Lvista/Lvista.github.iozh Mon, 20 Jan 2025 08:51:59 -0000 Mon, 20 Jan 2025 08:51:59 -0000 1440 MkDocs RSS plugin - v1.17.1 None 黯然's Sitehttps://lvista.site/ Numpy中的广播机制 <h1>Numpy中的广播机制</h1><p>使用Numpy进行机器学习时,向量之间的运算涉及到到广播机制(Broadcast),详细的广播机制是很长的,但是可通过一个简单的例子就能窥见其一二。</p>https://lvista.site/blog/2025/01/19/np_bc/ Sun, 19 Jan 2025 13:44:41 +0000黯然's Sitehttps://lvista.site/blog/2025/01/19/np_bc/ 理工生不会梦见巴甫洛夫条件反射 <h1>理工生不会梦见巴甫洛夫条件反射</h1><p>Learning when not to solve a problem is one of the hardest things I've learnt.</p>https://lvista.site/blog/2025/01/16/pavlovian/ Thu, 16 Jan 2025 11:17:54 +0000黯然's Sitehttps://lvista.site/blog/2025/01/16/pavlovian/ Build A Simular Site <h1>给我也整一个!</h1><p>整一个与本站类似的网站</p>https://lvista.site/blog/2025/01/10/build_sim/ Tue, 14 Jan 2025 13:05:03 +0000黯然's Sitehttps://lvista.site/blog/2025/01/10/build_sim/ 自建主页:始 <h1>自建主页:始</h1><p>从萌生一个建站的想法,到成功构建一个基本框架的过程。具体做法官网给的很详细,这里只会指出一些特别的地方</p>https://lvista.site/blog/2025/01/08/site_build/ Thu, 09 Jan 2025 11:27:07 +0000黯然's Sitehttps://lvista.site/blog/2025/01/08/site_build/ 基于Python的视频处理 <h1>基于Python的视频处理</h1><p>一开始我是为了做一个GIF图,然后进行一个压的缩,缩到8M以下,以便发到B站动态。但是网上的在线压缩工具都不太好用,于是想到了Python,一查果然有这样的媒体处理模块:<code>moviepy</code></p>https://lvista.site/blog/2025/01/06/Vedio_processing_by_python/ Sun, 05 Jan 2025 17:15:55 +0000黯然's Sitehttps://lvista.site/blog/2025/01/06/Vedio_processing_by_python/ \ No newline at end of file + 黯然's Sitehttps://lvista.site/https://github.com/Lvista/Lvista.github.iozh Tue, 21 Jan 2025 13:22:01 -0000 Tue, 21 Jan 2025 13:22:01 -0000 1440 MkDocs RSS plugin - v1.17.1 None 黯然's Sitehttps://lvista.site/ Numpy中的广播机制 <h1>Numpy中的广播机制</h1><p>使用Numpy进行机器学习时,向量之间的运算涉及到到广播机制(Broadcast),详细的广播机制是很长的,但是可通过一个简单的例子就能窥见其一二。</p>https://lvista.site/blog/2025/01/19/np_bc/ Sun, 19 Jan 2025 13:44:41 +0000黯然's Sitehttps://lvista.site/blog/2025/01/19/np_bc/ 理工生不会梦见巴甫洛夫条件反射 <h1>理工生不会梦见巴甫洛夫条件反射</h1><p>Learning when not to solve a problem is one of the hardest things I've learnt.</p>https://lvista.site/blog/2025/01/16/pavlovian/ Thu, 16 Jan 2025 11:17:54 +0000黯然's Sitehttps://lvista.site/blog/2025/01/16/pavlovian/ Build A Simular Site <h1>给我也整一个!</h1><p>整一个与本站类似的网站</p>https://lvista.site/blog/2025/01/10/build_sim/ Tue, 14 Jan 2025 13:05:03 +0000黯然's Sitehttps://lvista.site/blog/2025/01/10/build_sim/ 自建主页:始 <h1>自建主页:始</h1><p>从萌生一个建站的想法,到成功构建一个基本框架的过程。具体做法官网给的很详细,这里只会指出一些特别的地方</p>https://lvista.site/blog/2025/01/08/site_build/ Thu, 09 Jan 2025 11:27:07 +0000黯然's Sitehttps://lvista.site/blog/2025/01/08/site_build/ 基于Python的视频处理 <h1>基于Python的视频处理</h1><p>一开始我是为了做一个GIF图,然后进行一个压的缩,缩到8M以下,以便发到B站动态。但是网上的在线压缩工具都不太好用,于是想到了Python,一查果然有这样的媒体处理模块:<code>moviepy</code></p>https://lvista.site/blog/2025/01/06/Vedio_processing_by_python/ Sun, 05 Jan 2025 17:15:55 +0000黯然's Sitehttps://lvista.site/blog/2025/01/06/Vedio_processing_by_python/ \ No newline at end of file diff --git a/feed_rss_updated.xml b/feed_rss_updated.xml index 094fede..4a740af 100644 --- a/feed_rss_updated.xml +++ b/feed_rss_updated.xml @@ -1 +1 @@ - 黯然's Sitehttps://lvista.site/https://github.com/Lvista/Lvista.github.iozh Mon, 20 Jan 2025 08:51:59 -0000 Mon, 20 Jan 2025 08:51:59 -0000 1440 MkDocs RSS plugin - v1.17.1 None 黯然's Sitehttps://lvista.site/ Numpy中的广播机制 <h1>Numpy中的广播机制</h1><p>使用Numpy进行机器学习时,向量之间的运算涉及到到广播机制(Broadcast),详细的广播机制是很长的,但是可通过一个简单的例子就能窥见其一二。</p>https://lvista.site/blog/2025/01/19/np_bc/ Sun, 19 Jan 2025 13:44:41 +0000黯然's Sitehttps://lvista.site/blog/2025/01/19/np_bc/ 理工生不会梦见巴甫洛夫条件反射 <h1>理工生不会梦见巴甫洛夫条件反射</h1><p>Learning when not to solve a problem is one of the hardest things I've learnt.</p>https://lvista.site/blog/2025/01/16/pavlovian/ Thu, 16 Jan 2025 11:17:54 +0000黯然's Sitehttps://lvista.site/blog/2025/01/16/pavlovian/ 自建主页:始 <h1>自建主页:始</h1><p>从萌生一个建站的想法,到成功构建一个基本框架的过程。具体做法官网给的很详细,这里只会指出一些特别的地方</p>https://lvista.site/blog/2025/01/08/site_build/ Wed, 15 Jan 2025 03:36:13 +0000黯然's Sitehttps://lvista.site/blog/2025/01/08/site_build/ Build A Simular Site <h1>给我也整一个!</h1><p>整一个与本站类似的网站</p>https://lvista.site/blog/2025/01/10/build_sim/ Tue, 14 Jan 2025 13:05:03 +0000黯然's Sitehttps://lvista.site/blog/2025/01/10/build_sim/ 基于Python的视频处理 <h1>基于Python的视频处理</h1><p>一开始我是为了做一个GIF图,然后进行一个压的缩,缩到8M以下,以便发到B站动态。但是网上的在线压缩工具都不太好用,于是想到了Python,一查果然有这样的媒体处理模块:<code>moviepy</code></p>https://lvista.site/blog/2025/01/06/Vedio_processing_by_python/ Tue, 14 Jan 2025 13:05:03 +0000黯然's Sitehttps://lvista.site/blog/2025/01/06/Vedio_processing_by_python/ \ No newline at end of file + 黯然's Sitehttps://lvista.site/https://github.com/Lvista/Lvista.github.iozh Tue, 21 Jan 2025 13:22:01 -0000 Tue, 21 Jan 2025 13:22:01 -0000 1440 MkDocs RSS plugin - v1.17.1 None 黯然's Sitehttps://lvista.site/ Numpy中的广播机制 <h1>Numpy中的广播机制</h1><p>使用Numpy进行机器学习时,向量之间的运算涉及到到广播机制(Broadcast),详细的广播机制是很长的,但是可通过一个简单的例子就能窥见其一二。</p>https://lvista.site/blog/2025/01/19/np_bc/ Sun, 19 Jan 2025 13:44:41 +0000黯然's Sitehttps://lvista.site/blog/2025/01/19/np_bc/ 理工生不会梦见巴甫洛夫条件反射 <h1>理工生不会梦见巴甫洛夫条件反射</h1><p>Learning when not to solve a problem is one of the hardest things I've learnt.</p>https://lvista.site/blog/2025/01/16/pavlovian/ Thu, 16 Jan 2025 11:17:54 +0000黯然's Sitehttps://lvista.site/blog/2025/01/16/pavlovian/ 自建主页:始 <h1>自建主页:始</h1><p>从萌生一个建站的想法,到成功构建一个基本框架的过程。具体做法官网给的很详细,这里只会指出一些特别的地方</p>https://lvista.site/blog/2025/01/08/site_build/ Wed, 15 Jan 2025 03:36:13 +0000黯然's Sitehttps://lvista.site/blog/2025/01/08/site_build/ Build A Simular Site <h1>给我也整一个!</h1><p>整一个与本站类似的网站</p>https://lvista.site/blog/2025/01/10/build_sim/ Tue, 14 Jan 2025 13:05:03 +0000黯然's Sitehttps://lvista.site/blog/2025/01/10/build_sim/ 基于Python的视频处理 <h1>基于Python的视频处理</h1><p>一开始我是为了做一个GIF图,然后进行一个压的缩,缩到8M以下,以便发到B站动态。但是网上的在线压缩工具都不太好用,于是想到了Python,一查果然有这样的媒体处理模块:<code>moviepy</code></p>https://lvista.site/blog/2025/01/06/Vedio_processing_by_python/ Tue, 14 Jan 2025 13:05:03 +0000黯然's Sitehttps://lvista.site/blog/2025/01/06/Vedio_processing_by_python/ \ No newline at end of file diff --git a/search/search_index.json b/search/search_index.json index 50d8a9e..329e09d 100644 --- a/search/search_index.json +++ b/search/search_index.json @@ -1 +1 @@ -{"config":{"lang":["en"],"separator":"[\\s\\u200b\\u3000\\-\u3001\u3002\uff0c\uff0e\uff1f\uff01\uff1b]+","pipeline":["stemmer"]},"docs":[{"location":"","title":"Welcome to \u9eef\u7136's Blog","text":"\u70b9\u6211\u770b\u770b!
    • \u4f60\u53ef\u80fd\u611f\u5174\u8da3\u7684

      \u4e00\u4e9b\u6709\u7528\u7684\u6587\u7ae0\uff08\u5b58\u7591\uff09

      \u53bb\u770b\u770b

    • \u5173\u4e8e\u6211

      \u6211\u662f\u4e2a...\u4eba\uff1f

      \u4e86\u89e3\u4e00\u4e0b

    • \u6211\u7684\u8db3\u8ff9

      \u4fdd\u6301\u5bf9\u8fd9\u4e2a\u4e16\u754c\u7684\u597d\u5947\u5fc3

      \u65bd\u5de5\u4e2d

    • \u7ed9\u6211\u4e5f\u6574\u4e00\u4e2a

      \u5982\u679c\u60a8\u8ba4\u540c\u6211\u7684\u535a\u5ba2\u8bbe\u8ba1\uff0c\u53ef\u4ee5\u4ece\u8fd9\u91cc\u5feb\u901f\u90e8\u7f72

      \u5f00\u6574

    "},{"location":"Doc_skill/","title":"MkDocs\u64b0\u5199\u6280\u5de7","text":"

    \u8bb0\u5f55\u4e00\u4e9b\u6709\u7528\u7684MkDocs\u7684\u64b0\u5199\u8bed\u6cd5\uff0c\u6280\u5de7\u7b49\uff0c\u968f\u65f6\u67e5\u9605\u3002\u4e3b\u8981\u8bb0\u5f55\u4e00\u4e9b\u6211\u7528\u8fc7\u6216\u8005\u89c9\u5f97\u6709\u7528\u7684\u4e00\u4e9b\u8bed\u6cd5\uff0c\u6bd5\u7adf\u5e76\u4e0d\u662f\u8d8a\u591a\u8d8a\u597d\u3002

    Info

    \u672c\u6587\u6240\u8ff0\u8bed\u6cd5\u5e76\u4e0d\u662f\u57fa\u672cMarkDown\u8bed\u6cd5\uff0c\u5176\u4f9d\u8d56\u4e8e\u5404\u79cd\u6269\u5c55\uff0c\u8bf7\u5728\u52a0\u8f7d\u5bf9\u5e94\u6269\u5c55\u540e\u518d\u4f7f\u7528

    ","tags":["Test"]},{"location":"Doc_skill/#admonitions","title":"\u8b66\u544a(Admonitions)","text":"

    \u8be6\u60c5\u8bf7\u67e5\u9605\u539f\u6587\u3002

    \u5f15\u7528

    \u4eba\u751f\u4e09\u95ee\uff0c\u6211\u662f\u8c01\uff0c\u6211\u4ece\u54ea\u91cc\u6765\uff0c\u6211\u5230\u54ea\u91cc\u53bb\u3002 \u2014\u2014from \u6c11\u95f4

    \u52a8\u624b\u505a\u4e00\u505a\u5427

    \u6bd4\u8d77\u201c\u4f8b\u5b50\u201d\u8fd9\u4e2a\u89e3\u91ca\uff0c\u6211\u89c9\u201c\u52a8\u624b\u505a\u4e00\u505a\u201d\u8fd9\u4e2a\u66f4\u9002\u5408\uff0c\u5c31\u50cf\u8bfe\u540e\u4e60\u9898\u4e00\u6837

    \u63d0\u793a

    \u539f\u6587 \u6709\u5f88\u591a\u53ef\u4ee5\u8868\u793a\u63d0\u793a\u7684\u683c\u5f0f\uff0c\u6682\u65f6\u89c9\u5f97\u8fd9\u4e2a\u66f4\u597d\u4e00\u70b9\u3002

    ","tags":["Test"]},{"location":"Doc_skill/#emojisbuttons","title":"\u8868\u60c5(Emojis)\u548c\u6309\u94ae(Buttons)","text":"
    [\u524d\u5f80\u641c\u7d22emoji :octicons-search-16:][tab_1]{ .md-button }\n\n[tab_1]: https://squidfunk.github.io/mkdocs-material/reference/icons-emojis/#search\n

    \u524d\u5f80\u641c\u7d22emoji

    ","tags":["Test"]},{"location":"Doc_skill/#annotations","title":"\u6ce8\u91ca(Annotations)","text":"

    See more (1)

    1. Annotations

    \u4ee3\u7801\u4e2d\u7684Annotations:

    theme:\n  features:\n    - content.code.annotate # (1)!\n

    1. \u4f7f\u7528\u8fd9\u4e2a\u6ce8\u91ca\u65b9\u6cd5\uff1a# (1)!
    ","tags":["Test"]},{"location":"Doc_skill/#code-blocks","title":"\u4ee3\u7801\u5757(Code blocks)","text":"","tags":["Test"]},{"location":"Doc_skill/#_1","title":"\u52a0\u6807\u9898","text":"test.md
    ``` py title=\"bubble_sort.py\"\ndef bubble_sort(items):\n    for i in range(len(items)):\n        for j in range(len(items) - 1 - i):\n            if items[j] > items[j + 1]:\n                items[j], items[j + 1] = items[j + 1], items[j]\n```\n
    ","tags":["Test"]},{"location":"Doc_skill/#_2","title":"\u52a0\u884c\u53f7","text":"
    ``` py linenums=\"1\"\ndef bubble_sort(items):\n    for i in range(len(items)):\n        for j in range(len(items) - 1 - i):\n            if items[j] > items[j + 1]:\n                items[j], items[j + 1] = items[j + 1], items[j]\n```\n
    ","tags":["Test"]},{"location":"Doc_skill/#_3","title":"\u884c\u9ad8\u4eae","text":"LinesLine ranges Code block with highlighted lines
    ``` py hl_lines=\"2 3\"\ndef bubble_sort(items):\n    for i in range(len(items)):\n        for j in range(len(items) - 1 - i):\n            if items[j] > items[j + 1]:\n                items[j], items[j + 1] = items[j + 1], items[j]\n```\n
    def bubble_sort(items):\n    for i in range(len(items)):\n        for j in range(len(items) - 1 - i):\n            if items[j] > items[j + 1]:\n                items[j], items[j + 1] = items[j + 1], items[j]\n
    Code block with highlighted line range
    ``` py hl_lines=\"3-5\"\ndef bubble_sort(items):\n    for i in range(len(items)):\n        for j in range(len(items) - 1 - i):\n            if items[j] > items[j + 1]:\n                items[j], items[j + 1] = items[j + 1], items[j]\n```\n
    def bubble_sort(items):\n    for i in range(len(items)):\n        for j in range(len(items) - 1 - i):\n            if items[j] > items[j + 1]:\n                items[j], items[j + 1] = items[j + 1], items[j]\n
    ","tags":["Test"]},{"location":"Doc_skill/#iconapi","title":"\u83b7\u53d6\u7f51\u9875ICON\u7684api","text":"

    favicone

    <!-- example -->\nhttps://favicone.com/google.com\n
    https://0x3.com/

    <!-- example -->\nhttps://0x3.com/icon?host=www.bilibili.com\n
    ","tags":["Test"]},{"location":"about/","title":"\u5173\u4e8e\u6211","text":"

    \u4eba\u751f\u4e09\u95ee

    \u4eba\u751f\u4e09\u95ee\uff0c\u6211\u662f\u8c01\uff0c\u6211\u4ece\u54ea\u91cc\u6765\uff0c\u6211\u5230\u54ea\u91cc\u53bb\u3002 \u2014\u2014from \u6c11\u95f4

    \u4eba\u751f\u4e09\u554f\uff0c\u4eba\u70ba\u4f55\u800c\u6d3b\uff1f\u61c9\u5982\u4f55\u751f\u6d3b\uff1f\u53c8\u61c9\u5982\u4f55\u624d\u80fd\u6d3b\u51fa\u61c9\u6d3b\u51fa\u7684\u751f\u547d\uff1f \u2014\u2014from \u53f0\u6e7e\u5927\u5b66 \u5b6b\u6548\u667a

    • \u201c\u6211\u662f\u8c01\u201d\u5373\u81ea\u6211\uff0c\u5373\u73b0\u5728\uff0c
    • \u201c\u6211\u4ece\u54ea\u91cc\u6765\u201d\u5373\u8fc7\u53bb\uff0c
    • \u201c\u6211\u5230\u90a3\u91cc\u53bb\u201d\u5373\u5c06\u6765\u3002
    \u6211\u662f\u8c01\uff1f\u6211\u6765\u81ea\u54ea\u91cc\uff1f\u6211\u4e3a\u4f55\u800c\u6d3b\uff1f \u6211\u7231\u6298\u817e\u7801\u519cC\u8bed\u8a00DIYINFJ\u5b85\u7537\u6307\u6325\u5b98\u5200\u5ba2\u5854\u7ef3\u5320
    • \u7a0b\u667a\u8d85\uff1a\u7236\u6bcd\u8d50\u59d3\u7a0b\uff0c\u6765\u81ea\u7236\uff0c\u8d50\u540d\u667a\u8d85\uff0c\u6765\u81ea\u667a\u6167\u8fc7\u4eba\u4e4b\u610f\u3002\u7b80\u5355\u76f4\u767d\u7684\u540d\u5b57\u3002
    \u6709\u591a\u5c11\u540c\u540d\u540c\u59d3

    \u6839\u636e\u516c\u5b89\u90e8\u4fbf\u6c11\u670d\u52a1\u63d0\u4f9b\u6570\u636e\uff0c\u622a\u6b622024/12/24\uff0c\u5171\u6709216\u540d\u7537\u6027\uff0c16\u540d\u5973\u6027\u4e0e\u6211\u540c\u540d\u3002

    • \u9eef\u7136\uff1a\u7f51\u540d\u4e4b\u4e00\u3002\u66fe\u7ecf\u559c\u6b22\u7eff\u8272\uff0c\u6545\u53d6\u7f51\u540d\u7eff\u7eff\u9eef\u7136\uff0c\u540e\u6539lvlv\u9eef\u7136\u3002\u56e0\u4e0e\u4e24\u4f4d\u7d20\u672a\u8c0b\u9762\u7684\u7f51\u53cb\u6253\u82f1\u96c4\u8054\u76df\u7ecf\u5e38\u88ab\u7b80\u79f0\u9eef\u7136\uff0c\u81ea\u6b64\u7559\u5b58
    • Lvista: \u7f51\u540d\u4e4b\u4e8c\u3002lv\u4e3a\u7eff\u4e4b\u610f\uff0cvista\u5728\u82f1\u6587\u4e2d\u6709\u8fdc\u666f\u4e4b\u610f\uff0c\u867d\u7136\u662f\u5999\u624b\u5076\u5f97\u4e4b\uff0c\u4f46\u5199\u8be5\u6587\u65f6\u6ce8\u610f\u5230\u53ef\u80fd\u4e0eWindows Vista\u6709\u5173\u3002

      \u5176\u5b9e\u4ece\u672a\u7528\u8fc7Windows Vista\uff0c\u6700\u65e9\uff0c\u7528\u7684\u6700\u591a\u7684\u4e5f\u5c31\u662fXP\u3002

    \u7231\u6298\u817e\uff0c\u6709\u65f6\u5019\u4f1a\u56e0\u4e3a\u4e00\u4e2a\u5c0f\u95ee\u9898\u800c\u7279\u610f\u53bb\u6298\u817e\uff0c \u6bd4\u5982\u6700\u8fd1\u5728\u7528latex\u5199\u6bd5\u4e1a\u8bba\u6587\uff0c\u56e0\u4e3a\u5accwindows\u5e73\u53f0\u7f16\u8bd1\u6162\uff0c \u7279\u610f\u7528\u8001\u7b14\u8bb0\u672c\u88c5\u4e86\u4e00\u4e2aUbuntu\uff0c\u610f\u5916\u7684\u597d\u7528\u3002

    \u521b\u5efa\u8fd9\u4e2a\u7f51\u7ad9\u65f6\uff0c\u60f3\u505a\u4e00\u4e2a\u7ffb\u8f6c\u5934\u50cf\u7684\u6548\u679c\uff0c\u4f46\u56e0\u4e3a\u4e0d\u61c2html\uff0c \u67e5\u9605\u5404\u79cd\u8d44\u6599\uff08\u5305\u62ecGPT\uff09\uff0c\u6700\u7ec8\u5f04\u51fa\u6765\u4e86\u3002

    • \u6700\u719f\u6089\uff1aC(\u5d4c\u5165\u5f0f), C++(\u5d4c\u5165\u5f0f), C#(Unity)
    • \u8fd8\u884c\uff1aPython, Java
    • \u80fd\u8bfb\u61c2\uff1aSQL, HTML,

    Note

    \u6211\u5f88\u559c\u6b22\u7f16\u7a0b\u3002\u6211\u7684\u6bcd\u4eb2\u662f\u4e00\u4f4d\u8ba1\u7b97\u673a\u8001\u5e08\uff0c\u53d7\u5230\u5979\u7684\u5f71\u54cd\uff0c \u51fa\u751f\uff08\u751a\u81f3\u662f\u51fa\u751f\u524d\uff09\u5c31\u63a5\u89e6\u8ba1\u7b97\u673a\uff0c\u521d\u4e2d\u63a5\u89e6\u7b2c\u4e00\u95e8\u8bed\u8a00\uff0cC\u8bed\u8a00\u3002 \u4f46\u6211\u5e76\u4e0d\u662f\u79d1\u73ed\u51fa\u8eab(1)\uff0c\u5b66\u7684\u6bd4\u8f83\u6742\u3002

    1. \u9ad8\u8003\u62a5\u8003\u65f6\uff0c\u6bcd\u4eb2\u529d\u6212\u6211\u522b\u5b66\u8ba1\u7b97\u673a\uff0c\u800c\u6211\u7269\u7406\u662f\u6700\u597d\u7684\uff0c\u6240\u4ee5\u9009\u4e86\u5e94\u7528\u7269\u7406\u5b66. \u867d\u7136\u4e5f\u662f\u843d\u699c\u5bfc\u81f4\u6ed1\u5230\u4e86\u8fd9\u4e2a\u5b66\u6821\u8fd9\u4e2a\u4e13\u4e1a\u5c31\u662f\u4e86\u3002\u4f46\u6211\u4f9d\u7136\u559c\u6b22\u7f16\u7a0b\uff0c \u7855\u58eb\u8003\u8fdb\u5357\u4eac\u7406\u5de5\u5927\u5b66\u7684\u4eea\u5668\u7cfb\uff0c\u641e\u7535\u8def\uff0c\u534a\u5e74\u540e\u53c8\u8d70\u53cc\u5b66\u4f4d\u9879\u76ee\u6765\u65e5\u672c\u641e\u4eba\u673a\u4ea4\u4e92\uff0c \u53c8\u641e\u4ee3\u7801\u3002\u5e94\u8be5\u8bf4\u6211\u662f\u5565\u90fd\u61c2\u5565\u90fd\u4f1a\u5427\ud83d\ude02

    \u6211\u6700\u65e9\u63a5\u89e6\u7684\u662fC\u8bed\u8a00\uff0c\u540e\u9762\u5d4c\u5165\u5f0f\u73a9\u7684\u591a\uff0c\u4e5f\u6210\u4e86\u6211\u6700\u719f\u6089\u7684\u8bed\u8a00\u3002 \u7531\u4e8e\u662fOPP\u7f16\u7a0b\uff0c \u6211\u5230\u73b0\u5728\u4e5f\u8fd8\u4fdd\u7559\u4ee5\u8fc7\u7a0b\u4e3a\u4e3b\u7ebf\u7684\u7f16\u7a0b\u4e60\u60ef\u3002

    \u8fd9\u4e5f\u5bfc\u81f4\u6211\u6700\u521d\u65e0\u6cd5\u7406\u89e3OOP\u7f16\u7a0b\uff0c \u62bd\u8c61\u7a0b\u5ea6\u8fc7\u9ad8\u5bfc\u81f4\u7684\u9ed1\u76d2\u6548\u5e94\uff0c \u5404\u79cd\u4f9d\u8d56\u5d4c\u5957\uff0c\u8ba9\u6211\u5f88\u6050\u614c\u3002

    \u4f46\u6bd5\u7adf\u662f\u65f6\u4ee3\u7684\u53d1\u5c55\uff0c\u4f5c\u4e3a\u7a0b\u5e8f\u5458\u600e\u4e48\u80fd\u4e0d\u8ddf\u7d27\u65f6\u4ee3\u7684\u811a\u6b65\u5462

    DIY\uff0c\u5373Do It Yourself\uff0c\u81ea\u5df1\u52a8\u624b\uff0c\u4e30\u8863\u8db3\u98df\u3002

    • \u7f16\u7a0b\uff1a\u67e5\u4e00\u67e5\u5c31\u5b66\u4e00\u5b66\u5c31\u77e5\u9053\u4e86
    • \u505a\u996d\uff1a\u770b\u4e00\u770b\uff0c\u5b66\u7740\u505a\u4e00\u505a\u5c31\u77e5\u9053\u4e86
    • \u5176\u4ed6\uff1a\u770b\u4e00\u770b\uff0c\u5b66\u7740\u505a\u4e00\u505a\u5c31\u77e5\u9053\u4e86

    \u6211\u662f\u5b9e\u8df5\u6d3e\uff0c\u601d\u8003\u7406\u8bba\u82b1\u8d39\u6211\u66f4\u591a\u65f6\u95f4\u3002

    \u6211\u662f\u4e00\u4e2aINFJ\uff0c \u559c\u6b22\u601d\u8003\uff0c\u559c\u6b22\u5206\u6790\uff0c\u559c\u6b22\u603b\u7ed3\u3002\u8eab\u8fb9\u7684INFJ\u8fd8\u633a\u591a\uff0c\u6bd4\u5982\u53f3\u8fb9\u53cb\u60c5\u94fe\u63a5\u4e2d\u7684\u5f20\u6768\u540c\u5b66

    \u559c\u6b22\u4e8c\u6b21\u5143\uff0c\u9b3c\u755c\uff0c\u5404\u79cd\u4e9a\u6587\u5316\uff0c \u6df7\u8ff9\u4e8ebilibili\uff0c\u97f3\u4e50\uff0c\u6e38\u620f\uff0c\u4ee3\u7801\u7b49\uff0c\u4e00\u53f0\u7535\u8111\u5c31\u591f\u6211\u5728\u623f\u95f4\u91cc\u73a9\u4e0a\u4e00\u6574\u5929

    \u78a7\u84dd\u822a\u7ebf\u8d44\u6df1\u73a9\u5bb6\uff0c\u5f00\u670d\u73a9\u5230\u73b0\u5728\uff0c\u62c5\u4efb\u8230\u957f\uff0c\u5927\u5c31\u662f\u597d

    \u660e\u65e5\u65b9\u821f\u8001\u73a9\u5bb6\uff0c\u6284\u4f5c\u4e1a\u73a9\u5bb6\uff0c\u4e0d\u73a9\u8089\u9e3d

    \u96f6\u6c2a\u7edd\u8d5e\u8fdb\u884c\u4e2d

    \u7965\u4e91\u53bf\u5357\u4eac\u4fe1\u606f\u5de5\u7a0b\u5927\u5b66\u5357\u4eac\u7406\u5de5\u5927\u5b66\u798f\u5ca1\u5de5\u696d\u5927\u5b66

    \u8001\u5bb6\u4e91\u5357\u5927\u7406\u7684\u7965\u4e91\u53bf\uff0c\u662f\u4e00\u4e2a\u5c0f\u53bf\u57ce\uff0c \u4e0e\u5927\u7406\u5e02\u76f8\u90bb\uff0c\u662f\u901a\u5f80\u6ec7\u897f\u5730\u533a\u7684\u5173\u9698\u4e4b\u5730\u3002

    \u4e91\u5357\u4e4b\u6e90

    \u7965\u4e91\u53bf\u5386\u53f2\u60a0\u4e45\uff0c\u897f\u6c49\u5143\u5c01\u4e8c\u5e74\uff08\u524d109\u5e74\uff09\u8bbe\u53bf\uff0c\u540d\u4e91\u5357\u53bf\uff0c\u662f\u4e91\u5357\u7701\u540d\u7684\u8d77\u6e90\u5730\uff0c\u6709\u201c\u4e91\u5357\u4e4b\u6e90\u201d\u201c\u5f69\u4e91\u4e4b\u4e61\u201d\u7684\u8a89\u79f0\uff0c\u66fe\u7ecf\u957f\u671f\u4e3a\u6ec7\u897f\u5317\u7684\u653f\u6cbb\u3001\u7ecf\u6d4e\u548c\u6587\u5316\u4e2d\u5fc3\u30021918\u5e74\uff0c\u4e3a\u514d\u7701\u53bf\u540c\u540d\uff0c\u4e91\u5357\u53bf\u6539\u79f0\u7965\u4e91\u53bf\u3002\u2014\u2014from wiki

    \u6bcf\u4e2a\u7965\u4e91\u4eba\u90fd\u7231\u901b\u7684\u5730\u65b9\u2014\u2014\u949f\u9f13\u697c \u4f5c\u8005\uff1aKcx36

    \u672c\u79d1\u6bcd\u6821\uff0c\u5e94\u7528\u7269\u7406\u4e13\u4e1a\uff0c4\u5e74\u8fc7\u7684\u975e\u5e38\u201c\u8282\u80fd\u201d\uff08\u5c31\u50cf\u51b0\u83d3\u91cc\u7684\u6298\u6728\u5949\u592a\u90ce\uff09\uff0c\u6ca1\u6302\u8fc7\u79d1\uff0c\u6210\u7ee9\u4e5f\u662f\u4e2d\u7b49\u504f\u4e0a\uff0c \u4f46\u4e5f\u6ca1\u505a\u4ec0\u4e48\u7279\u522b\uff0c\u6ca1\u4ec0\u4e48\u6210\u679c\u3002\u611f\u89c9\u6700\u53d7\u76ca\u7684\u662f\u9ad8\u6570\uff0c\u5149\u5b66\uff0c\u7269\u7406\u5b66\uff0c\u7535\u8def\uff0c\u5d4c\u5165\u5f0f

    \u5b66\u6821\u867d\u7136\u662f\u53cc\u975e\uff0c\u4f46\u6211\u4f9d\u7136\u611f\u6fc0\u8001\u5e08\u548c\u540c\u5b66\uff0c\u8fd8\u6709\u996d\u5802\u3002 \u7279\u522b\u662f\u8ba9\u6211\u7ed3\u8bc6\u4e86\u51e0\u4f4d\u631a\u53cb\u3002

    \u9760\u7740\u52aa\u529b\u8003\u4e0a\u5357\u7406\u5de5\u7684\u7814\u7a76\u751f\uff0c\u5fae\u7cfb\u7edf\u4e0e\u6d4b\u63a7\u6280\u672f(1)\u65b9\u5411\uff0c\u56e0\u4e3a\u6ca1\u4eba\u5f53\u8d39\u529b\u4e0d\u8ba8\u597d\u7684\u73ed\u957f\uff0c \u6211\u5c31\u6210\u4e3a\u4e86\u73ed\u957f\u3002\u4f46\u4e0a\u4e86\u534a\u5e74\u5c31\u6765\u65e5\u672c\u4e86\uff0c\u7ed3\u8bc6\u4e86\u6700\u597d\u7684\u5ba4\u53cb\u6768\u8301\u540c\u5b66\uff0c \u5728\u6211\u8eab\u5728\u4ed6\u4e61\u7684\u65f6\u5019\u5e2e\u4e86\u6211\u5f88\u591a\u5fd9\u3002

    1. \u5c5e\u4e8e\u673a\u68b0\u9662\u7684\u4eea\u5668\u7cfb\uff0c\u641e\u7535\u8def\u548c\u6d4b\u63a7\u4eea\u5668\u7684\uff0c\u4e0e\u672c\u79d1\u7684\u5e94\u7528\u7269\u7406\u76f8\u6bd4\uff0c \u6709\u70b9\u8de8\u5b66\u79d1\u4e86\u3002

    \u6545\u4e8b\u8fd8\u672a\u7ed3\u675f...

    \u53c2\u52a0\u5357\u7406\u5de5\u7684\u53cc\u5b66\u4f4d\u9879\u76ee\uff0c\u5728\u65e5\u672c\u7559\u5b662\u5e74\uff08\u5357\u7406\u5de5\u4e5f\u5728\u7c4d\uff09

    See more

    \u5b8f\u89c2\u52a8\u753b\u6e38\u620f\u97f3\u4e50
    • \u6c42\u77e5\uff1a\u4e0e\u5927\u591a\u7406\u5de5\u751f\u4e00\u6837\uff0c\u5bf9\u8fd9\u4e2a\u4e16\u754c\u5145\u6ee1\u4e86\u597d\u5947\uff0c\u5404\u79cd\u7269\u7406\uff0c\u6570\u5b66\uff0c \u5316\u5b66\uff08\u867d\u7136\u6211\u5316\u5b66\u6781\u5dee\uff09\u5bf9\u6211\u4eec\u6765\u8bf4\u5145\u6ee1\u4e86\u9b45\u529b\uff0c\u7f51\u7edc\u548c\u73b0\u5b9e\u65e0\u6240\u8c13\uff0c \u91cd\u8981\u7684\u662f\u6709\u8da3\uff0c\u8ba9\u6211\u6709\u63a2\u7d22\u7684\u6b32\u671b\u3002
    • \u68a6\u60f3\uff1a\u73af\u6e38\u4e16\u754c\u3002\u6240\u8c13\u201c\u8bfb\u4e07\u5377\u4e66\uff0c\u884c\u4e07\u91cc\u8def\u201d\uff0c\u4e66\u7684\u9b45\u529b\u81ea\u4e0d\u5fc5\u591a\u8bf4\uff0c \u96be\u4ee5\u89e6\u53ca\u662f\u6574\u4e2a\u4e16\u754c\uff01\u73af\u6e38\u4e16\u754c\u662f\u6211\u6700\u5927\u7684\u68a6\u60f3\u3002
    • \u6211\u548c\u7236\u6bcd\uff1a\u300c\u4eba\u4e0d\u4e3a\u5df1\uff0c\u5929\u8bdb\u5730\u706d\u300d(1)\uff0c\u6211\u65e0\u6cd5\u4e3a\u81ea\u5df1\u7684\u81ea\u79c1\u8fa9\u9a73\uff0c \u4f46\u7236\u6bcd\u7ed9\u4e88\u4e86\u6211\u751f\u547d\uff0c\u5c06\u6211\u517b\u80b2\u6210\u4eba\uff0c\u5176\u6069\u60c5\u6211\u6050\u6015\u6211\u7528\u4e00\u751f\u90fd\u65e0\u6cd5\u507f\u8fd8\uff0c\u6240\u4ee5\u4e3a\u4e86\u4e0d\u8f9c\u8d1f\u4ed6\u4eec\uff0c \u6211\u5fc5\u987b\u6d3b\u4e0b\u53bb\u3002

      1. \u5176\u771f\u6b63\u542b\u4e49\u8c8c\u4f3c\u5df2\u65e0\u6cd5\u8003\u636e\uff0c\u6211\u8fd9\u91cc\u53d6\u6700\u901a\u4fd7\u7684\u89e3\u91ca\uff0c \u53ef\u4ee5\u5728\u77e5\u4e4e\u4e2d\u56f4\u89c2\u8ba8\u8bba

    \u6700\u5927\u7684\u7231\u597d\u4e4b\u4e00\uff0c\u827a\u672f\u5bf9\u6211\u6709\u5f3a\u5927\u7684\u5438\u5f15\u529b\uff0c\u52a8\u753b\u4e5f\u5305\u62ec\u5728\u5185\u3002\u867d\u7136\u73b0\u5728\u5df2\u7ecf\u57fa\u672c\u4e0d\u8ffd\u65b0\u756a\u4e86\uff0c\u4f46\u4f9d\u7136\u4f1a\u5173\u6ce8\u8bc4\u4ef7\u597d\u7684\u52a8\u753b\u4f5c\u54c1

    • \u5165\u95e8\u4f5c\u662f\u5bb6\u5ead\u6559\u5e08\uff0c
    • \u5165\u5751\u4f5c\u662f\u5b66\u56ed\u9ed8\u793a\u5f55\uff0c
    • \u672c\u540d\u4f5c\u662f\u6e38\u620f\u4eba\u751f\uff0c
    • \u6700\u4f73\u4f5c\u662f\u4e52\u4e53
    • \u6700\u559c\u6b22\u7684\u56fd\u6f2b\u662f\u51f8\u53d8\u82f1\u96c4BABA

    \u5173\u4e8e\u52a8\u753b\u66f4\u591a\u7684\u8ba8\u8bba\uff0c\u53ef\u4ee5\u770b\u770bAnime\u677f\u5757

    \u6700\u5927\u7684\u7231\u597d\u4e4b\u4e8c\uff0c\u4f46\u73a9\u7684\u6e38\u620f\u975e\u5e38\u5c11\u3002\u4ece4399\u5230\u8d5b\u5c14\u53f7\uff0c\u4ece\u8650\u6740\u539f\u578b\u5230LOL\uff0c \u4ece\u5d29\u574f\u5b66\u56ed2\u5230\u78a7\u84dd\u822a\u7ebf\uff0c\u4ece\u539f\u795e\u5230\u7edd\u533a\u96f6\u3002\u73b0\u5728\u73a9\u7684\u4e0d\u591a\u4e86

    \u5173\u4e8e\u6e38\u620f\u66f4\u591a\u7684\u8ba8\u8bba\uff0c\u53ef\u4ee5\u770b\u770bGame\u677f\u5757

    \u4ece\u5468\u6770\u4f26\uff0c\u9648\u5955\u8fc5\uff0c\u5230\u6b27\u7f8e\uff0c\u518d\u5230jpop\uff0c\u4ece\u6d41\u884c\u5230\u6447\u6eda\uff0c\u4ece\u53e4\u5178\u5230\u7535\u5b50\uff0c\u4ec0\u4e48\u90fd\u542c\u3002 \u53ea\u8981\u662f\u597d\u542c\u7684\u97f3\u4e50\uff0c\u6211\u90fd\u6765\u8005\u4e0d\u62d2\u3002

    \u5173\u4e8e\u97f3\u4e50\u66f4\u591a\u7684\u8ba8\u8bba\uff0c\u53ef\u4ee5\u770b\u770bMusic\u677f\u5757

    "},{"location":"about/#_2","title":"\u5173\u4e8e\u6211\u7684\u5934\u50cf","text":"\u6b63\u9762\u53cd\u9762

    \u7b97\u662f\u6211\u7f51\u7edc\u4e0a\u7684\u5e38\u7528\u5934\u50cf\u4e86\uff0c\u6765\u81ea\u7f51\u7edc\uff0c\u4f5c\u8005\u672a\u77e5\uff0c\u662f\u6211\u7684\u672c\u547d\u4f5c\u300a\u30ce\u30fc\u30b2\u30fc\u30e0\u30fb\u30ce\u30fc\u30e9\u30a4\u30d5\u300b\uff08\u4e2d\u6587\uff1a\u6e38\u620f\u4eba\u751f\uff09\u4e2d\u7684\u4e24\u4f4d\u4e3b\u89d2\u3002\u5173\u4e8e\u6211\u5bf9\u8fd9\u4e2a\u4f5c\u54c1\u7684\u8ba8\u8bba\uff0c\u53ef\u79fb\u6b65\u8be6\u60c5\u3002

    \u65e5\u51fa\u4e4b\u65f6\u5230\u8fbe\u5bcc\u58eb\u5c71\u9876\uff0c\u5728\u706b\u5c71\u53e3\u62cd\u7684\u7167\uff0c\u5728bilibili\u6295\u7a3f\u4e86\u89c6\u9891

    "},{"location":"template/","title":"Template","text":"

    \u8fd9\u662f\u4e00\u4e2a\u6807\u51c6\u6a21\u677f

    this is a stander template

    ","tags":["Template"]},{"location":"test/","title":"Test","text":"

    Just a page for testing

    "},{"location":"test/#pyscript-example","title":"PyScript Example","text":"

    \u4e0b\u9762\u662f\u4e00\u4e2a PyScript \u793a\u4f8b\uff1a

    "},{"location":"world/","title":"\u8db3\u8ff9","text":"

    \u8fd9\u662f\u4e00\u4e2a\u6807\u51c6\u6a21\u677f

    this is a stander template

    ","tags":["\u8db3\u8ff9"]},{"location":"anime/","title":"\u52a8\u753b","text":"
    • \u6e38\u620f\u4eba\u751f
    "},{"location":"anime/ngnl/","title":"\u5173\u4e8e\u30ce\u30fc\u30b2\u30fc\u30e0\u30fb\u30ce\u30fc\u30e9\u30a4\u30d5\uff08\u6e38\u620f\u4eba\u751f\uff09","text":"

    \u65e5\u6587\u5047\u540d\u8bd1\u81eaNo Game No Life\uff08\u7b80\u5199\u4f5cngnl\uff09\u3002\u6211\u6700\u65e9\u4eceTV\u52a8\u753b\u5f00\u59cb\u63a5\u89e6\uff0c\u4e4b\u540e\u5f00\u59cb\u8bfb\u5c0f\u8bf4\uff0c\u540e\u9762\u53c8\u51fa\u4e86\u9707\u60ca\u5708\u5185\u7684\u5267\u573a\u7248\u3002TV\u52a8\u753b\u548c\u5267\u573a\u7248\u6211\u90fd\u662f\u975e\u5e38\u63a8\u8350\u7684\u4f73\u4f5c\u4e2d\u7684\u4f73\u4f5c\u3002

    Note

    \u4e4b\u6240\u4ee5\u53ea\u80fd\u7b97\u662f\u4f73\u4f5c\uff0c\u662f\u56e0\u4e3a\u5bf9\u4e8e\u52a8\u753b\u672c\u8eab\uff0c\u6211\u5fc3\u4e2d\u7684\u7b2c\u4e00\u540d\u5176\u5b9e\u662f\u300a\u4e52\u4e53\u300b\uff0c\u5173\u4e8e\u300a\u4e52\u4e53\u300b\u66f4\u591a\u7684\u8ba8\u8bba\uff0c\u53ef\u4ee5\u770b\u8fd9\u91cc\u3002

    "},{"location":"anime/ngnl/#tv","title":"TV\u52a8\u753b","text":""},{"location":"anime/ngnl/#_2","title":"\u5267\u573a\u7248","text":""},{"location":"anime/ngnl/#_3","title":"\u5c0f\u8bf4","text":""},{"location":"blog/","title":"Blog","text":"

    BroadcastChannel\u80fd\u5c06Telegram\u516c\u5171\u9891\u9053\u8f6c\u4e3a\u7b80\u6613\u535a\u5ba2

    \u6e90\uff1ahttps://treehole.lvista.site/

    "},{"location":"blog/2025/01/08/site_build/","title":"\u81ea\u5efa\u4e3b\u9875\uff1a\u59cb","text":"

    \u4ece\u840c\u751f\u4e00\u4e2a\u5efa\u7ad9\u7684\u60f3\u6cd5\uff0c\u5230\u6210\u529f\u6784\u5efa\u4e00\u4e2a\u57fa\u672c\u6846\u67b6\u7684\u8fc7\u7a0b\u3002\u5177\u4f53\u505a\u6cd5\u5b98\u7f51\u7ed9\u7684\u5f88\u8be6\u7ec6\uff0c\u8fd9\u91cc\u53ea\u4f1a\u6307\u51fa\u4e00\u4e9b\u7279\u522b\u7684\u5730\u65b9

    \u53c2\u8003

    • \u611f\u8c22\uff1a\u03a3\u5f20\u6768\u6fc0\u53d1\u4e86\u6211\u5efa\u7ad9\u7684\u60f3\u6cd5\u3002
    • \u4e3b\u8981\u9075\u5faa\uff1aMaterial for MkDocs-getting-started
    \u4e3a\u4f55\u8981\u8d39\u65f6\u8d39\u529b\u5efa\u4e00\u4e2a\u7f51\u7ad9\uff1f

    \u4e0d\u4e3a\u522b\u7684\uff0c\u5c31\u662f\u201c\u4ecb\u7ecd\u81ea\u6211\u201d\u3002\u5982\u679c\u662f\u4e3a\u4e86\u5206\u4eab\u4e00\u4e9b\u4e1c\u897f\uff0c\u5927\u53ef\u53bbCSDN(1)\u4e4b\u7c7b\u7684\u5730\u65b9\uff0c \u4e0d\u5fc5\u5728\u4e2a\u4eba\u4e3b\u9875\u4e0a\u5206\u4eab\u7ecf\u9a8c\uff0c\u8fd9\u6709\u6096\u4e92\u8054\u7f51\u7684\u201c\u5206\u4eab\u201d\u7cbe\u795e\u3002

    1. \u53ef\u4ee5\u524d\u5f80\u6211\u7684CSDN\u770b\u770b\u5206\u4eab\u8fc7\u7684\u6587\u7ae0

    Notion\u662f\u4e00\u4e2a\u5f88\u597d\u7684\u7b14\u8bb0\u8bb0\u5f55\u5e73\u53f0\uff0c\u529f\u80fd\u5f88\u5f3a\u5927\uff0c\u6211\u628a\u5f88\u591a\u8bb0\u5f55\u7684\u4e1c\u897f\u90fd\u653e\u5728\u8fd9\u91cc\uff0c \u4f46\u662f\u5e76\u4e0d\u80fd\u5b8c\u5168\u7684\u81ea\u5b9a\u4e49\uff0c\u5e76\u4e14\u66f4\u591a\u662f\u201c\u79c1\u6709\u201d\u7684\uff0c\u6240\u4ee5\u60f3\u5c06\u5176\u79fb\u690d\u5230\u4e2a\u4eba\u7f51\u7ad9\u4e0a\u3002

    \u5bf9\u4e8e\u6211\u8fd9\u6837\u559c\u6b22\u6df7\u8ff9\u5728\u4e92\u8054\u7f51\uff0c\u89c6\u7535\u5b50\u8bbe\u5907\u4e3a\u201c\u6700\u4f73\u73a9\u5177\u201d\u7684\u4eba\u6765\u8bf4\uff0c \u4e2a\u4eba\u4e3b\u9875\u5c31\u662f\u6700\u597d\u7684\u540d\u7247\u3002\u901a\u8fc7\u8fd9\u6837\u7684\u201c\u540d\u7247\u201d\u6211\u7ed3\u5b9e\u4e86\u201c\u4e16\u53e6\u6211\u201d\u03a3\u5f20\u6768

    ","tags":["\u5efa\u7ad9","HTML","Material for MkDocs","Blog","\u4e2a\u4eba\u7f51\u7ad9"]},{"location":"blog/2025/01/08/site_build/#start-your-first-homepage","title":"Start your first homepage","text":"

    \u53ea\u9700\u8981\u9075\u4eceGetting-started \u6309\u7167\u987a\u5e8f\u4e00\u6b65\u6b65\u505a\u4e0b\u53bb\u5373\u53ef\u642d\u5efa\u5b8c\u6210\u7b2c\u4e00\u4e2aHP\uff0c\u4e4b\u540e\u5728GitHub Pages\u4e0a\u90e8\u7f72\u5373\u53ef\u3002\u52a8\u624b\u5b8c\u6210\u81f3Getting-started\u4e2d\u7684Publishing your site \u7ae0\u8282\u5373\u53ef\u5b8c\u6210\u57fa\u672c\u90e8\u7f72\u3002

    \u5feb\u901f\u5b9e\u8df5

    \u4ee5\u4e0b\u4ec5\u4e3a\u201c\u6025\u6025\u56fd\u738b\u201d\u6216\u8005\u9700\u8981\u5c3d\u5feb\u642d\u5efa\u7684\u540c\u5b66\u7684\u53c2\u8003\uff0c\u5bf9\u4e8e\u5927\u591a\u6570\u4eba\uff0c \u4f9d\u7136\u5efa\u8bae\u6309\u7167Getting-started\u63d0\u4f9b\u7684\u6559\u7a0b\u8fdb\u884c.

    • pip install mkdocs-material
    • \u4e0b\u8f7d\u5b98\u65b9\u63d0\u4f9b\u7684\u6807\u51c6\u4f8b\u5b50 Blog
    • mkdocs.yml\u4fee\u6539\u4ee5\u4e0b\u90e8\u5206(1):
      plugins:\n    - search\n    - blog:\n        blog_toc: true\n        archive_date_format: MMMM yyyy\n        categories_allowed:\n            - Holidays\n            - News\n        authors_profiles: true\n        pagination_per_page: 5\n        archive_pagination_per_page: 10\n        categories_pagination_per_page: 10\n    - tags\n
    • \u8fd0\u884cmkdocs serve\u5373\u53ef\u5728\u672c\u5730\u6d4f\u89c8\u6548\u679c
    • \u8fd0\u884cmkdocs build\u521b\u5efa\u5305\u542bindex.html\u7684\u7f51\u9875\u6587\u4ef6
    • GitHub Pages\u5feb\u901f\u90e8\u7f72\uff0c\u63a8\u9001\u5230Github
    • \u8bbf\u95eeuser.github.io\u5373\u53ef\u770b\u5230\u7ed3\u679c

    \u66f4\u559c\u6b22\u6211\u7684\uff1f

    \u5982\u679c\u60a8\u66f4\u559c\u6b22\u6211\u7684\uff0c\u53ef\u4ee5\u770b\u770b\u8fd9\u7bc7

    1. \u56e0\u4e3a\u8be5\u4f8b\u5b50\u53ea\u7ed9Insiders Edition\uff0c\u4fd7\u79f0\u9ad8\u7ea7\u7528\u6237\u4f7f\u7528 \u9700\u8981\u53bb\u6389\u90e8\u5206\u529f\u80fd\u624d\u80fd\u8fd0\u884c\u3002
    \u4f60\u53ef\u80fd\u9700\u8981\u77e5\u9053\u7684

    GitHub Pages\u662f\u901a\u8fc7\u81ea\u52a8\u5bfb\u627e\u5f53\u524dBranch\u4e0a\u7684\u7684index.html\u6765\u53d1\u5e03\u7f51\u9875\u7684\uff0c \u6240\u4ee5\u9700\u8981\u6ce8\u610frepo\u4e2d\u7684setting\u2192Pages\u2192Build and deployment\u4e0b\u7684Source\u8bbe\u7f6e\u662f\u5426\u662fDeploy from a branch\uff0c Branch\u662f\u5426\u8bbe\u7f6e\u4e3a\u7f16\u8bd1\u540e\u7684\u6587\u4ef6\u5206\u652f\uff0c\u8fd9\u4e2a\u8bbe\u7f6e\u5728\u540e\u9762\u4e5f\u4f1a\u63d0\u5230

    ","tags":["\u5efa\u7ad9","HTML","Material for MkDocs","Blog","\u4e2a\u4eba\u7f51\u7ad9"]},{"location":"blog/2025/01/08/site_build/#github-actions-workflow","title":"\u4f7f\u7528GitHub Actions workflow","text":"

    \u4e3a\u4f55\u8981\u4f7f\u7528 GAW

    GitHub Actions is a continuous integration and continuous delivery (CI/CD) platform that allows you to automate your build, test, and deployment pipeline. You can create workflows that build and test every pull request to your repository, or deploy merged pull requests to production.

    from Publishing your site - Material for MkDocs

    \u539f\u7406

    \u4f7f\u7528 GAW \u6700\u5927\u7684\u597d\u5904\u5728\u4e8e\u5c06\u6e90\u6587\u4ef6\u548c\u7f16\u8bd1\u540e\u7684\u6587\u4ef6\u5e93\u5206\u5f00\u3002\u5e76\u4e14\u7f16\u8bd1\u5728 GAW \u4e0a\u5b8c\u6210\uff0c\u5bf9\u672c\u5730\u7f16\u8f91\u73af\u5883\u8981\u6c42\u964d\u4f4e\u4e86\u5f88\u591a\uff0c\u53ef\u4ee5\u5feb\u901f\u53d1\u5e03\u6587\u7ae0\u3002

    \u539f\u7406\u5c31\u662f\u5c06\u7f16\u8bd1\u524d\u7684\u6587\u4ef6\u63a8\u9001\u5230Github\uff0cGithub\u4f1a\u6839\u636e.github\\workflows\\ci.yml\u8fd0\u884c\u547d\u4ee4\uff0c \u5728\u8fd9\u91cc\u5c31\u662f\u5c06\u6587\u4ef6\u4e91\u7f16\u8bd1\u81f3gh-pages\u5206\u652f\uff0c\u7136\u540eGithub Page\u4f1a\u5c55\u793agh-pages\u5206\u652f\u7684\u7f51\u9875\u4ed3\u5e93\uff0c \u800c\u6e90\u6587\u4ef6\u5219\u5728main\u5206\u652f\u4e2d\u3002

    1. \u6839\u636ePublishing your site - Material for MkDocs \u5b8c\u6210ci.yml\u7684\u521b\u5efa
    2. \u5c06\u5e26\u6709mkdocs.yml\u7684\u6e90\u6587\u4ef6\u5e93\u63a8\u9001\u81f3main\u5206\u652f
    3. \u8f6cGithub\u4ed3\u5e93\u9875\u9762\uff0c\u5728Setting->Pages->Build and deployment\u4e2d\uff0c\u5c06Branch\u8bbe\u5b9a\u4e3agh-pages
    ERROR - Config value 'plugins': The \"git-revision-date-localized\" plugin is not installed

    \u5f53\u4f7f\u7528git-revision-date-localized \u6a21\u5757\u540e\uff0c\u5728 GAW \u8fd0\u884c\u65f6\u4f1a\u51fa\u73b0\u8fd9\u6837\u7684\u9519\u8bef\u3002\u8bf7\u4fee\u6539.github/workflows/ci.yml\u5185\u5bb9\u5982\u4e0b\uff0c\u8ba9 GAW \u4e0b\u8f7d\u8be5\u6a21\u5757\uff1a

    name: ci\non:\npush:\n    branches:\n    - main\npermissions:\ncontents: write\njobs:\ndeploy:\n    runs-on: ubuntu-latest\n    steps:\n    - uses: actions/checkout@v4\n    - name: Configure Git Credentials\n        run: |\n        git config user.name github-actions[bot]\n        git config user.email 41898282+github-actions[bot]@users.noreply.github.com\n    - uses: actions/setup-python@v5\n        with:\n        python-version: 3.x\n    - run: echo \"cache_id=$(date --utc '+%V')\" >> $GITHUB_ENV\n    - uses: actions/cache@v4\n        with:\n        fetch-depth: 0\n        key: mkdocs-material-${{ env.cache_id }}\n        path: .cache\n        restore-keys: |\n            mkdocs-material-\n    - run: pip install mkdocs-material\n    - run: pip install mkdocs-git-revision-date-localized-plugin\n    - run: mkdocs gh-deploy --force\n

    ","tags":["\u5efa\u7ad9","HTML","Material for MkDocs","Blog","\u4e2a\u4eba\u7f51\u7ad9"]},{"location":"blog/2025/01/08/site_build/#_2","title":"\u56fd\u5185\u8bbf\u95ee","text":"

    Note

    \u8bf7\u786e\u8ba4\u5df2\u5728GitHub Pages\u4e0a\u90e8\u7f72\u597d\u7f51\u7ad9\u5e76\u53ef\u4ee5\u8bbf\u95ee\u3002

    \u56fd\u5185\u8bbf\u95eeGitHub Pages\u63d0\u4f9b\u7684username.github.io\u4f1a\u51fa\u73b0\u52a0\u8f7d\u6162\u7684\u60c5\u51b5\uff0cvercel \u4e4b\u7c7b\u7684\u5e73\u53f0\u4e5f\u65e0\u6cd5\u5728\u56fd\u5185\u8fdb\u884c\u8bbf\u95ee\uff0c\u6240\u4ee5\u5c31\u9700\u8981\u53e6\u5916\u4e00\u79cd\u65b9\u6cd5\u6765\u8fdb\u884c\u4ee3\u7406\u8bbf\u95ee\u3002\u8fd9\u91cc\u6211\u4eec\u4f7f\u7528\u57df\u540d+DNS\u89e3\u6790\u7684\u65b9\u6cd5\u3002

    1. \u9996\u5148\u8d2d\u4e70\u57df\u540d\uff0c\u817e\u8baf\u4e91\uff0c\u963f\u91cc\u4e91\u5565\u7684\u90fd\u884c\u3002\u6bd4\u5982\u6211\u8fd9\u91cc\u4f7f\u7528\u7684\u817e\u8baf\u4e91\uff0c \u9700\u8981\u5b9e\u540d\u6ce8\u518c\uff0c\u5ba1\u6838\u901a\u8fc7\u5f88\u5feb\uff0c\u8d2d\u4e70\u4e861\u5e74\u7684.site\u57df\u540d\uff1b
    2. \u4e4b\u540e\u5e26\u7740\u6ce8\u518c\u53f7\u7684\u57df\u540d\uff0c\u6bd4\u5982\u6211\u7684lvista.site\uff0c\u627e\u5230\u4e91\u89e3\u6790DNS\u670d\u52a1\uff0c\u9009\u62e9\u65b0\u624b\u5feb\u901f\u89e3\u6790
    3. \u9009\u62e9\u5c06\u7f51\u7ad9\u57df\u540d\u89e3\u6790\u5230\u53e6\u5916\u7684\u76ee\u6807\u540d\uff0c\u8f93\u5165username.github.io\uff0c\u5c31\u80fd\u5f00\u542f\u514d\u8d39\u5957\u9910\u7248\u7684\u4e91\u89e3\u6790DNS\u670d\u52a1
    4. \u8f6cGithub\u4ed3\u5e93\uff0c\u5728Setting->Pages-> Chustom domain\u4e2d\u8f93\u5165\u57df\u540d\uff0c\u4fdd\u5b58
    ","tags":["\u5efa\u7ad9","HTML","Material for MkDocs","Blog","\u4e2a\u4eba\u7f51\u7ad9"]},{"location":"blog/2025/01/08/site_build/#end","title":"END","text":"

    \u5230\u6b64\u4e3a\u6b62\uff0c\u4f60\u5df2\u7ecf\u6210\u529f\u5b8c\u6210\u4ee5\u4e0b\u529f\u80fd\uff1a

    • \u6784\u5efa\u4e00\u4e2a\u7f51\u7ad9
    • \u5c06\u5176\u90e8\u7f72\u5728\u670d\u52a1\u5668\u4e0a\uff08GitPage\u6258\u7ba1\u670d\u52a1\uff09
    • \u4e2d\u56fd\u5927\u9646\u4e5f\u80fd\u8bbf\u95ee

    \u606d\u559c\u4f60\uff0c\u4f60\u53c8\u8fdb\u6b65\u4e86\uff01\uff01

    ","tags":["\u5efa\u7ad9","HTML","Material for MkDocs","Blog","\u4e2a\u4eba\u7f51\u7ad9"]},{"location":"blog/2025/01/10/build_sim/","title":"\u7ed9\u6211\u4e5f\u6574\u4e00\u4e2a\uff01","text":"

    \u6574\u4e00\u4e2a\u4e0e\u672c\u7ad9\u7c7b\u4f3c\u7684\u7f51\u7ad9

    \u9996\u5148\u8c22\u8c22\u9891\u5e55\u524d\u7684\u4f60\u5bf9\u6211\u7684\u8ba4\u540c\uff0c\u8bdd\u4e0d\u591a\u8bf4\uff0c\u5f00\u6574\uff01

    ","tags":["\u5efa\u7ad9","HTML","Material for MkDocs","Blog","\u4e2a\u4eba\u7f51\u7ad9"]},{"location":"blog/2025/01/10/build_sim/#_2","title":"\u51c6\u5907","text":"
    • \u4ece\u6211\u7684release/latest\u4e2d\u4e0b\u8f7d\u6700\u65b0\u7248
    • \u4e0b\u8f7d\u5305:
    pip install mkdocs-materialpip install mkdocs-rss-pluginpip install mkdocs-git-revision-date-localized-plugin

    \u4e4b\u540e\u8fd0\u884c\u4ee5\u4e0b\u547d\u4ee4\u5373\u53ef\u9884\u89c8

    mkdocs server

    Tip

    mkdocs server\u8fd0\u884c\u540e\u4e0d\u4f1a\u81ea\u52a8\u4e2d\u6b62\u8fdb\u7a0b\uff0c\u4f7f\u7528Ctrl+C\u5373\u53ef\u5f3a\u884c\u7ec8\u6b62\u8fdb\u7a0b\u3002 \u8fdb\u7a0b\u5f00\u59cb\u540e\uff0c \u5927\u90e8\u5206 \u7684\u7f51\u9875\u7684\u4fee\u6539\u4f1a\u540c\u6b65\u8ddf\u65b0\u5230\u7f51\u9875\uff0c\u4e0d\u9700\u8981\u91cd\u65b0\u542f\u52a8\u3002

    ","tags":["\u5efa\u7ad9","HTML","Material for MkDocs","Blog","\u4e2a\u4eba\u7f51\u7ad9"]},{"location":"blog/2025/01/10/build_sim/#_3","title":"\u90e8\u7f72","text":"
    1. \u521b\u5efa\u4e00\u4e2aGithub\u8d26\u53f7
    2. \u6309\u7167GitHub Pages\u521b\u5efa\u4ed3\u5e93
    3. \u6309\u7167\u4f7f\u7528GitHub Actions workflow \u63a8\u9001\u4ed3\u5e93
    4. \u6309\u7167\u56fd\u5185\u8bbf\u95ee\u89e3\u6790\u7f51\u9875
    ","tags":["\u5efa\u7ad9","HTML","Material for MkDocs","Blog","\u4e2a\u4eba\u7f51\u7ad9"]},{"location":"blog/2025/01/10/build_sim/#_4","title":"\u81ea\u5b9a\u4e49","text":"

    \u5927\u90e8\u5206\u8bbe\u7f6e\u53ef\u53c2\u8003Customization \u8fd9\u91cc\u5bf9\u6211\u52a0\u5165\u7684\u8fdb\u884c\u8bf4\u660e

    ","tags":["\u5efa\u7ad9","HTML","Material for MkDocs","Blog","\u4e2a\u4eba\u7f51\u7ad9"]},{"location":"blog/2025/01/10/build_sim/#_5","title":"\u9996\u9875\u5934\u50cf","text":"

    \u53ef\u4fee\u6539docs/index.md\u4e2d\u7684\u56fe\u7247\u548c\u6587\u5b57

    docs/index.mddocs/css/custom.css
    <div class=\"flip-container\">\n<div class=\"image-container\">\n    <!-- docs/assets/images/logo_noBG_circle.png -->\n    <img src=\"https://s2.loli.net/2025/01/09/ve1piNRt6M5ycDQ.png\" alt=\"Front Image\">\n    <a href=\"/template/\" >\n        <!-- docs/assets/images/self_shoot.png -->\n        <img src=\"https://s2.loli.net/2025/01/09/wOzTR9Kyfq2jMHo.png\" alt=\"Back Image\">\n    </a>\n</div>\n<div class=\"hover-block\">\n    \u70b9\u6211\u770b\u770b!\n</div>\n</div>\n
    .flip-container {\n    position: relative;\n    width: 300px;\n    height: 300px;\n    margin: 10px auto;\n    display: flex;\n    align-items: flex-start;\n    /* \u5bf9\u9f50\u9876\u90e8 */\n    justify-content: flex-end;\n    /* \u5c06\u6587\u5b57\u653e\u7f6e\u53f3\u4e0a\u89d2 */\n}\n\n/*more...*/\n
    ","tags":["\u5efa\u7ad9","HTML","Material for MkDocs","Blog","\u4e2a\u4eba\u7f51\u7ad9"]},{"location":"blog/2025/01/10/build_sim/#_6","title":"\u53cb\u60c5\u94fe\u63a5","text":"

    \u53ef\u4fee\u6539overrides/main.html\u4e2d\u7684\u56fe\u7247\u548c\u94fe\u63a5

    overrides/main.htmlcss/float_cards.cssmkdocs.yml
    {% block site_nav %}\n<!-- Navigation -->\n{% if nav %}\n{% if page.meta and page.meta.hide %}\n{% set hidden = \"hidden\" if \"navigation\" in page.meta.hide %}\n{% endif %}\n<div class=\"md-sidebar md-sidebar--primary\" data-md-component=\"sidebar\" data-md-type=\"navigation\" {{ hidden }}>\n    <div class=\"md-sidebar__scrollwrap\">\n        <div class=\"md-sidebar__inner\">\n            {% include \"partials/nav.html\" %}\n        </div>\n    </div>\n</div>\n\n{% endif %}\n\n<!-- Table of contents -->\n{% if \"toc.integrate\" not in features %}\n{% if page.meta and page.meta.hide %}\n{% set hidden = \"hidden\" if \"toc\" in page.meta.hide %}\n{% endif %}\n<div class=\"md-sidebar md-sidebar--secondary\" data-md-component=\"sidebar\" data-md-type=\"toc\" {{ hidden }}>\n    <div class=\"md-sidebar__scrollwrap\">\n        <div class=\"md-sidebar__inner\">\n            {% include \"partials/toc.html\" %}\n        </div>\n        <div class=\"card-container\">\n            <h3>\u53cb\u60c5\u94fe\u63a5</h3>\n            <div class=\"card\">\n                <div class=\"img-container\">\n                    <a href=\"https://yangzhang.site/\" target=\"_blank\">\n                        <img src=\"https://yangzhang.site/assets/images/summation.png\"\n                            style=\"width: 70%; height: 70%; object-fit: contain;\">\n                    </a>\n                </div>\n                <div class=\"content\">\n                    <a href=\"https://yangzhang.site/\" target=\"_blank\">\n                        <h3>yangzhang's Site</h3>\n                    </a>\n                </div>\n            </div>\n        </div>\n\n    </div>\n</div>\n{% endif %}\n{% endblock %}\n
    .card-container {\nmargin: 50px 0 0 0;\ndisplay: flex;\nflex-flow: row wrap;\nflex-wrap: wrap;\nalign-content: flex-start;\ntext-align: center;\n}\n/*...see more */\n
    extra_css:\n    - css/float_cards.css\n
    ","tags":["\u5efa\u7ad9","HTML","Material for MkDocs","Blog","\u4e2a\u4eba\u7f51\u7ad9"]},{"location":"blog/2025/01/14/jp_home/","title":"Template","text":"

    \u8fd9\u662f\u4e00\u4e2a\u6807\u51c6\u6a21\u677f

    this is a stander template

    ","tags":["\u7559\u5b66","\u65e5\u672c"]},{"location":"blog/2025/01/19/np_bc/","title":"Numpy\u4e2d\u7684\u5e7f\u64ad\u673a\u5236","text":"

    \u4f7f\u7528Numpy\u8fdb\u884c\u673a\u5668\u5b66\u4e60\u65f6\uff0c\u5411\u91cf\u4e4b\u95f4\u7684\u8fd0\u7b97\u6d89\u53ca\u5230\u5230\u5e7f\u64ad\u673a\u5236(Broadcast)\uff0c \u8be6\u7ec6\u7684\u5e7f\u64ad\u673a\u5236\u662f\u5f88\u957f\u7684\uff0c\u4f46\u662f\u53ef\u901a\u8fc7\u4e00\u4e2a\u7b80\u5355\u7684\u4f8b\u5b50\u5c31\u80fd\u7aa5\u89c1\u5176\u4e00\u4e8c\u3002

    ","tags":["Python","Numpy","\u5e7f\u64ad\u673a\u5236","\u673a\u5668\u5b66\u4e60"]},{"location":"blog/2025/01/19/np_bc/#_1","title":"\u80cc\u666f","text":"

    \u5728\u5b66\u4e60\u673a\u5668\u5b66\u4e60\u65f6\uff0c\u5c1d\u8bd5\u4f7f\u7528Numpy\u6784\u5efa\u4e00\u4e2a\u7b80\u5355\u7684\u591a\u8f93\u5165\u7279\u5f81\u7684\u5b9e\u9a8c\u6027\u4ee3\u7801\u65f6\uff0c \u53d1\u73b0\u6700\u540e\u7684\u7ed3\u679c\u51fa\u73b0\u4e86\u7ef4\u5ea6\u4e0a\u5347\u95ee\u9898\uff0c\u5982\u4e0b\uff0c\u5728\u8fd9\u91cc\u4f7f\u7528\u4e86\uff1a

    • \u6a21\u578b\uff1a\u7b80\u5355\u7ebf\u6027\u6a21\u578b
    • \u8f93\u5165\u548c\u8f93\u51fa\uff1a5\u7ef4\u5ea6\u7684\u8f93\u5165\u548c1\u7ef4\u5ea6\u7684\u8f93\u51fa
    • \u635f\u5931\u51fd\u6570\uff1a\u5e73\u65b9\u635f\u5931\u51fd\u6570
    • \u4f18\u5316\u7b97\u6cd5\uff1a\u968f\u673a\u68af\u5ea6\u4e0b\u964d\u6cd5
    \u751f\u6210\u6570\u636e\u70b9\u7ebf\u6027\u6a21\u578b\uff0c\u635f\u5931\u51fd\u6570\u548c\u68af\u5ea6\u8bad\u7ec3
    import numpy as np\n\nn = 500\nm = 5\nw = np.array([[3,2,6,1,7]]).T\nb = 8\nnp.random.seed(42)\nx = np.random.rand(m, n)\nx_aug = np.pad(x, ((0, 1), (0, 0)), 'constant', constant_values=1)\nw_aug = np.pad(w, ((0, 1), (0, 0)), 'constant', constant_values=b)\ny = np.dot(w_aug.T,x_aug)\n\n# \u6dfb\u52a0\u9ad8\u65af\u566a\u58f0 \nmu, sigma = 0, 1 # \u5747\u503c\u548c\u6807\u51c6\u5dee \nnoise = np.random.normal(mu, sigma, y.shape) \ny_noisy = y + noise\n\nfrom sklearn.model_selection import train_test_split\n\n# \u8f6c\u7f6e x_aug \u548c y_noisy \u4ee5\u8fdb\u884c\u6253\u4e71\u548c\u5206\u5272\nx_aug = x_aug.T\ny_noisy = y_noisy.T\n\n# \u5c06\u6570\u636e\u6253\u4e71\u5e76\u5206\u6210\u8bad\u7ec3\u96c6\u548c\u6d4b\u8bd5\u96c6\nx_train, x_test, y_train, y_test = train_test_split(x_aug, y_noisy, test_size=0.2, random_state=42)\n\n# \u8f93\u51fa\u7ed3\u679c\nprint(\"\u8bad\u7ec3\u96c6 X \u7684\u5f62\u72b6:\", x_train[:,:-1].shape)\nprint(\"\u6d4b\u8bd5\u96c6 X \u7684\u5f62\u72b6:\", x_test.shape)\nprint(\"\u8bad\u7ec3\u96c6 Y \u7684\u5f62\u72b6:\", y_train.shape)\nprint(\"\u6d4b\u8bd5\u96c6 Y \u7684\u5f62\u72b6:\", y_test.shape)\n
    # \u7ebf\u6027\u6a21\u578b\u51fd\u6570\ndef line_fun(x, w, b):\n    return np.dot(w.T, x)+b\n\n\n# \u8bbe\u5b9a\u4e00\u4e2a\u5e73\u65b9\u635f\u5931\u51fd\u6570\u7684\u68af\u5ea6\u4f18\u5316\ndef gradient_optimization(x, y, w, b):\n    y_pre = line_fun(x, w, b)\n    grad_w = -(y - y_pre) * x\n    grad_b = -(y - y_pre)\n    return grad_w, grad_b\n# \u635f\u5931\u51fd\u6570 \ndef loss_function(x, y, k, b): \n    y_pre = line_fun(x, k, b) \n    return np.mean((y - y_pre) ** 2)\n
    # \u8bbe\u5b9a\u5b66\u4e60\u53d8\u91cfw\u548cb\u7684\u521d\u59cb\u503c\nw = np.ones((5, 1))  # \u521d\u59cb\u6743\u91cd\u5411\u91cf\uff0c\u7ef4\u5ea6\u4e3a5*1\nb = 0.0\nlearning_rate = 0.001\ndecay_rate = 0.5\n\ntolerance = 1e-6\nmax_epochs = 1000\nmin_improvement = 1e-6\npatience = 10\n\n# \u8bad\u7ec3\u8fc7\u7a0b\nprevious_loss = float('inf')\nimprovement_streak = 0\n\n# \u8bad\u7ec3\u96c6\u5faa\u73af\nfor i in range(max_epochs):\n    learning_rate = 0.01 / (1 + decay_rate * i)\n    current_loss = 0\n    for n in range(x_train.shape[0]):\n        x_n = x_train[n, :-1]  # \u8f93\u5165\u7279\u5f81\u5411\u91cf\n        y_n = y_train[n]  # \u76ee\u6807\u503c\n        grad_w, grad_b = gradient_optimization(x_n, y_n, w, b)\n        w = w - learning_rate * grad_w\n        b = b - learning_rate * grad_b\n        current_loss += loss_function(x_n, y_n, w, b)\n\n    current_loss /= x_train.shape[0]\n    if abs(previous_loss - current_loss) < min_improvement:\n        improvement_streak += 1\n    else:\n        improvement_streak = 0\n\n    if improvement_streak >= patience:\n        print(f\"Training stopped after {i} epochs due to no significant improvement.\")\n        break\n\n    previous_loss = current_loss\n\nprint(f\"Final values: w={w.T},\\n b={b}, loss={previous_loss}\")\n

    output:\nFinal values: w=[[3.02622292 3.02622292 3.02622292 3.02622292 3.02622292]\n [2.44689788 2.44689788 2.44689788 2.44689788 2.44689788]\n [5.7501989  5.7501989  5.7501989  5.7501989  5.7501989 ]\n [1.51654221 1.51654221 1.51654221 1.51654221 1.51654221]\n [6.47852751 6.47852751 6.47852751 6.47852751 6.47852751]], \n b=[ 6.95328209  8.38911179  0.17837436 10.70002468 -1.62483275], loss=4.85157491175411\n
    \u53ef\u4ee5\u53d1\u73b0\uff0cw\u548cb\u5747\u88ab\u5e7f\u64ad\u673a\u5236\u6269\u5145\u4e3a(5,5)(1,5)\u7684\u77e9\u9635\u3002\u5404\u4f4d\u53ef\u4ee5\u601d\u8003\u4e00\u4e0b\u4e3a\u4ec0\u4e48\u3002

    ","tags":["Python","Numpy","\u5e7f\u64ad\u673a\u5236","\u673a\u5668\u5b66\u4e60"]},{"location":"blog/2025/01/19/np_bc/#_2","title":"\u95ee\u9898\u6240\u5728","text":"

    \u7ecf\u8fc7\u7e41\u7410\u7684\u95ee\u9898\u6392\u67e5\uff0c\u505a\u4e86\u4ee5\u4e0b\u6d4b\u8bd5\u4ee3\u7801\uff1a

    Test1.pyTest2.py
    x = np.ones((5,)) # \u76f8\u5f53\u4e8ex_n = x_train[n, :-1] (1)\nw = np.ones((5,1))# \nb = 1.0\ny = 1\ny_pre = np.dot(w.T, x)+b\nw =  w + (y - y_pre) * x\nprint(f\"shape of w: {w.shape}\")\n\ny_pre = np.dot(w.T, x)+b\nprint(f\"shape of y_pre: {y_pre.shape}\")\n
    1. \u4ece(100, 6)\u7684\u589e\u5e7f\u5411\u91cf\\(\\hat{x}\\)\u4e2d\u53d6\u4e00\u884c\u76841~5\u4e2a\u5143\u7d20\uff08\u6700\u540e\u4e00\u4e2a\u662f\u5e38\u6570\u9879\uff09
    output: \nshape of w: (5, 5)\nshape of y_pre: (5,)\n

    x = np.ones((5,1))\nw = np.ones((5,1))\nb = 1.0\ny = 1\ny_pre = np.dot(w.T, x)+b\nw =  w + (y - y_pre) * x\nprint(f\"shape of w: {w.shape}\")\n\ny_pre = np.dot(w.T, x)+b\nprint(f\"shape of y_pre: {y_pre.shape}\")\n
    output: \nshape of w: (5, 1)\nshape of y_pre: (1, 1)\n

    \u5de6\u8fb9\u662fx = np.ones((5,))\uff0c\u76f8\u5f53\u4e8e\u4e00\u4e2a5\u4e2a\u5e38\u6570\u3002 \u53f3\u8fb9\u662fx = np.ones((5,1))\uff0c\u662f\u4e00\u4e2a\u884c\u5411\u91cf

    \u6ce8\u610fw = w + (y - y_pre) * x\u8fd9\u4e00\u6b65\u7684\u8fd0\u7b97\uff1a

    Test1.pyTest2.py
    • (y - y_pre) * x-->(1,)\u4e58\u4ee5(5,)\uff0c\u5f97\u5230\u7684shape\u4e3a(5,)
    • w + (y - y_pre) * x-->(5,1)\u52a0(5,)\uff0c\u5f97\u5230\u7684shape\u4e3a(5,5)
    • (y - y_pre) * x-->(1,)\u4e58\u4ee5(5,1)\uff0c\u5f97\u5230\u7684shape\u4e3a(5,1)
    • w + (y - y_pre) * x-->(5,1)\u52a0(5,1)\uff0c\u5f97\u5230\u7684shape\u4e3a(5,1)
    ","tags":["Python","Numpy","\u5e7f\u64ad\u673a\u5236","\u673a\u5668\u5b66\u4e60"]},{"location":"blog/2025/01/19/np_bc/#_3","title":"\u603b\u7ed3","text":"

    \u5728Numpy\u4e2d\uff0c\u5c24\u5176\u9700\u8981\u6ce8\u610f(5,)\u8fd9\u6837shape\u7684\u53d8\u91cf\uff0c\u5b83\u4f1a\u88ab\u5f53\u4f5c5\u4e2a\u5e38\u91cf\uff0c\u53735\u4e2ashape\u4e3a(1,1)\u7684\u5411\u91cf\uff0c \u4e0eshape\u4e3a(5,1)\u7684\u5411\u91cf\u4f5c\u52a0\u7b97\u4f1a\u5f97\u5230shape\u4e3a(5,5)\u7684\u5411\u91cf\u3002

    \u8fd9\u4e5f\u5c31\u662f\u4e3a\u4ec0\u4e48\u5728\u4f17\u591a\u5173\u4e8eNumpy\u7684\u4e66\u7c4d\u548c\u6559\u7a0b\u4e2d\uff0c\u4f18\u5148\u4f7f\u7528\u884c\u5411\u91cf\u7684\u8868\u793a\u65b9\u5f0f\u7684\u539f\u56e0\u3002

    \u8bd5\u4e00\u8bd5

    \u8bd5\u8bd5\u4e0b\u9762\u4ee3\u7801\u770b\u770b\u7ed3\u679c\uff0c\u53d1\u73b0\u4e86\u4ec0\u4e48\uff1f

    x = np.ones((5,)) # \u8f93\u5165\u7279\u5f81\u5411\u91cf\nw = np.ones((5,1))\nprint(f\"shape of the result: {(x - w)}\")\nprint(f\"shape of the result: {(x * w)}\")\nprint(f\"shape of the result: {np.subtract(x, w)}\")\nprint(f\"shape of the result: {np.dot(x, w)}\")\n

    ","tags":["Python","Numpy","\u5e7f\u64ad\u673a\u5236","\u673a\u5668\u5b66\u4e60"]},{"location":"blog/2025/01/06/Vedio_processing_by_python/","title":"\u57fa\u4e8ePython\u7684\u89c6\u9891\u5904\u7406","text":"

    \u4e00\u5f00\u59cb\u6211\u662f\u4e3a\u4e86\u505a\u4e00\u4e2aGIF\u56fe\uff0c\u7136\u540e\u8fdb\u884c\u4e00\u4e2a\u538b\u7684\u7f29\uff0c\u7f29\u52308M\u4ee5\u4e0b\uff0c\u4ee5\u4fbf\u53d1\u5230B\u7ad9\u52a8\u6001\u3002\u4f46\u662f\u7f51\u4e0a\u7684\u5728\u7ebf\u538b\u7f29\u5de5\u5177\u90fd\u4e0d\u592a\u597d\u7528\uff0c\u4e8e\u662f\u60f3\u5230\u4e86Python\uff0c\u4e00\u67e5\u679c\u7136\u6709\u8fd9\u6837\u7684\u5a92\u4f53\u5904\u7406\u6a21\u5757\uff1amoviepy

    \u53c2\u8003\u4e86\u4ee5\u4e0b\u6587\u7ae0\uff1a

    • \u4e00\u65e5\u4e00\u6280\uff1a\u4f7f\u7528Python\u5c06\u89c6\u9891\u8f6cGif-\u817e\u8baf\u4e91\u5f00\u53d1\u8005\u793e\u533a-\u817e\u8baf\u4e91
    • User Guide \u2014 MoviePy 1.0.2 documentation
    ","tags":["Python","Vedio","Image"]},{"location":"blog/2025/01/06/Vedio_processing_by_python/#mp4gif","title":"MP4\u8f6cGIF","text":"

    \u9996\u5148\u7528Win11\u81ea\u5e26\u7684\u89c6\u9891\u526a\u8f91\u8f6f\u4ef6\u526a\u4e86\u4e00\u4e0b\uff0c\u7136\u540e\u5bfc\u5165moviepy \uff0c\u6309\u7167\u6559\u7a0b\u7ed9\u7684\u4ee3\u7801\u8fdb\u884c\u6d4b\u8bd5\uff1a

    from moviepy.editor import *\n\nclip = VideoFileClip(r\"C:\\Users\\czc_c\\Downloads\\Liar Dancer.mp4\")\nclip = clip.resize(0.4) # \u538b\u7f29\u5927\u5c0f\nclip.write_gif(\"movie-10f.gif\",fps=15)  #\u8bbe\u7f6e\u4e3a\u6bcf\u79d215\u5e27\n

    `module 'PIL.Image' has no attribute 'ANTIALIAS'

    error\uff1amodule 'PIL.Image' has no attribute 'ANTIALIAS'

    \u67e5\u4e86\u4e4b\u540e\u53d1\u73b0\u662fPillow \u4ece10.0\u7248\u672c\u540e\u5c31\u79fb\u9664\u4e86ANTIALIAS \uff0c\u89e3\u51b3\u65b9\u6848\u5c31\u662f\u5bfc\u51659.5\u7248\u672c\u3002

    AttributeError: module 'PIL.Image' has no attribute 'ANTIALIAS'

    ","tags":["Python","Vedio","Image"]},{"location":"blog/2025/01/16/pavlovian/","title":"\u7406\u5de5\u751f\u4e0d\u4f1a\u68a6\u89c1\u5df4\u752b\u6d1b\u592b\u6761\u4ef6\u53cd\u5c04","text":"

    Learning when not to solve a problem is one of the hardest things I've learnt.

    Quote

    Programmers have a pavlovian engineering response. Pose them a problem and they'll start trying to solve it. Give them a chance to co-engineer along with your presentation by making sure the first bite gets their saliva flowing. Then you can explain the rest of the problem and your brilliant solution knowing that they are there along with you.

    \u4eca\u5929\u770b\u5230\u4e00\u7bc7\u6587\u7ae0\uff0c\u63d0\u5230\u8be5\u5982\u4f55\u5728\u4e00\u6b21\u53d1\u8868\u4e2d\u5438\u5f15\u89c2\u4f17\u7684\u6ce8\u610f\u529b\uff0c\u8bf4\u662f\u8981\u5148\u679c\u540e\u56e0\uff0c\u6216\u8005\u662f\u5012\u53d9\u3002\u6bd4\u5982\u5148\u8bf4\u51fa\u4e00\u4e2a\u82f1\u96c4\u6b63\u5728\u88ab\u903c\u5165\u7edd\u5883\uff0c\u540e\u4ece\u5934\u5f00\u59cb\u63cf\u8ff0\u4e00\u5207\u7684\u5f00\u7aef\u3002

    \u6bd4\u8d77\u8fd9\u4e2a\uff0c\u6211\u66f4\u559c\u6b22\u8fd9\u4e2a\u6587\u7ae0\u91cc\u63d0\u5230\u7684\uff0cpavlovian engineering response\uff0c\u7406\u5de5\u751f\u7684\u5df4\u666e\u6d1b\u592b\u6761\u4ef6\u53cd\u5c04\uff0c\u4ed6\u4eec\u770b\u5230\u4e00\u4e2a\u95ee\u9898\u4f1a\u4e0d\u81ea\u89c9\u5f00\u59cb\u601d\u8003\u89e3\u51b3\u7684\u7684\u65b9\u6cd5\u3002\u8fd9\u53ef\u592a\u611f\u540c\u8eab\u53d7\u4e86\uff0c\u7406\u5de5\u7537\u7684\u7279\u6709\u7684\u76f4\u7537\u8868\u73b0\uff0c\u6536\u5230\u6765\u81ea\u5f02\u6027\u7684\u503e\u8bc9\u9996\u5148\u5e76\u4e0d\u662f\u611f\u540c\u8eab\u53d7\u53bb\u5b89\u6170\uff0c\u800c\u662f\u63d0\u51fa\u89e3\u51b3\u65b9\u6848\u3002

    Quote

    'Programmers have a pavlovian engineering response. Pose them a problem and they'll start trying to solve it.' One of the truest statements I've read in a long while. (Learning when not to solve a problem is one of the hardest things I've learnt.)

    \u8fd9\u662f\u4e0b\u9762\u7684\u7b2c\u4e00\u6761\u8bc4\u8bba\uff0c\u770b\u5b8c\u76f4\u63a5\u6ca1\u7ef7\u4f4f\uff0c\u7279\u522b\u662f\u62ec\u53f7\u91cc\u7684\u5410\u69fd\uff0c\u6bcf\u4e2a\u7406\u5de5\u7537\u770b\u5b8c\u90fd\u4f1a\u4f1a\u5fc3\u4e00\u7b11\u7684\u3002

    ","tags":["\u8da3\u4e8b"]},{"location":"code/","title":"Index","text":"
    • \u795e\u7ecf\u7f51\u7edc\u4e0e\u6df1\u5ea6\u5b66\u4e60
    "},{"location":"code/algorithm/","title":"\u7b97\u6cd5\u7684\u5b9e\u73b0","text":"","tags":["Neural Network","Deep Learning","Algorithm"]},{"location":"code/algorithm/#_1","title":"\u968f\u673a\u68af\u5ea6\u4e0b\u964d\u6cd5","text":"","tags":["Neural Network","Deep Learning","Algorithm"]},{"location":"code/nndl/","title":"\u795e\u7ecf\u7f51\u7edc\u4e0e\u6df1\u5ea6\u5b66\u4e60","text":"

    \u4e00\u4e9b\u5173\u4e8e\u300a\u795e\u7ecf\u7f51\u7edc\u4e0e\u6df1\u5ea6\u5b66\u4e60\u300b\u7684\u7b14\u8bb0

    • \u7b97\u6cd5\u7684\u5b9e\u73b0\u7ec3\u624b
    ","tags":["Neural Network","Deep Learning"]},{"location":"code/nndl/#_2","title":"\u5bf9\u795e\u7ecf\u7f51\u7edc\u4e0e\u6df1\u5ea6\u5b66\u4e60\u7684\u7406\u89e3","text":"

    \u4e66\u4e2d\u5bf9\u6574\u672c\u4e66\u7684\u7ed3\u6784\u5982\u4e0b\uff0c\u5f53\u4e0d\u77e5\u9053\u5728\u5b66\u4ec0\u4e48\u7684\u65f6\u5019\uff0c\u53ef\u4ee5\u770b\u4e00\u4e0b\u8fd9\u4e2a\u56fe

    • \u795e\u7ecf\u7f51\u7edc\u53ea\u662f\u4e00\u4e2a\u6a21\u578b\uff0c\u5c31\u50cf\u51fd\u6570\u4e00\u6837\uff0c\u653e\u8fdb\u4e00\u4e2a\u8f93\u5165\uff0c\u7ed9\u51fa\u4e00\u4e2a\u8f93\u51fa\uff0c \u53ea\u4e0d\u8fc7\u8fd9\u4e2a\u6a21\u578b\u91cc\u5305\u542b\u5f88\u591a\u9996\u5c3e\u76f8\u63a5\u7684\u51fd\u6570\uff0c\u6784\u6210\u50cf\u795e\u7ecf\u4e00\u6837\u7684\u7f51\u7edc\u7ed3\u6784\u3002
    • \u6df1\u5ea6\u5b66\u4e60\u5176\u5b9e\u5c31\u662f\u53cd\u590d\u5b66\u4e60\u7684\u610f\u601d\uff0c\u4ec0\u4e48\u662f\u5b66\u4e60\uff1f\u5b66\u4e60\u5c31\u662f\u8bd5\u9519\uff0c\u901a\u8fc7\u5224\u65ad\uff08\u5206\u7c7b\uff09\u5c06\u4e8b\u7269\u548c\u6982\u5ff5\u5f52\u7c7b\uff0c \u9519\u4e86\u5c31\u4fee\u6b63\uff0c\u4fee\u6b63\u4ec0\u4e48\uff1f\u4fee\u6b63\u6a21\u578b\u4e2d\u7684\u53c2\u6570\u3002\u5c31\u50cf\u6211\u4eec\u505a\u9519\u4e86\uff0c\u5c31\u4f1a\u4fee\u6b63\u5927\u8111\u91cc\u50a8\u5b58\u7684\u8ba4\u77e5\u4e00\u6837\u3002

    \u5bf9\u4e8e\u4eba\u6765\u8bf4\uff0c\u4e0a\u9762\u4e24\u4e2a\u8fc7\u7a0b\u901a\u8fc7\u5927\u8111\u7684\u795e\u7ecf\u7f51\u7edc\u548c\u795e\u7ecf\u7a81\u89e6\u7684\u654f\u611f\u5ea6\u7684\u4fee\u6b63\u6765\u5b9e\u73b0\u3002 \u4f46\u5b9e\u9645\u7684\u751f\u7406\u8fc7\u7a0b\u8981\u66f4\u4e3a\u590d\u6742\u3002

    Note

    \u77e5\u4e4e\u5173\u4e8e\u4eba\u662f\u600e\u4e48\u5b9e\u73b0\u5b66\u4e60\u7684\u8ba8\u8bba\uff0c\u6211\u89c9\u5f97\u5f88\u6709\u610f\u4e49

    ","tags":["Neural Network","Deep Learning"]},{"location":"code/nndl/#_3","title":"\u7b80\u5355\u5f15\u4f8b","text":"

    \u6839\u636e\u673a\u5668\u5b66\u4e60\u7684\u4e09\u4e2a\u57fa\u672c\u8981\u7d20\uff1a

    • \u6a21\u578b\uff1a\u5373\u201c\u5224\u65ad\u201d\u6216\u8005\u201c\u8bd5\u9519\u201d\u7684\u8fc7\u7a0b\uff0c\u5ef6\u7533\u51fa\u53e6\u5916\u4e00\u4e2a\u8bfe\u9898\uff0c\u6a21\u5f0f\u8bc6\u522b\u3002
    • \u5b66\u4e60\u51c6\u5219\uff1a\u201c\u8bd5\u9519\u201d\u65f6\u4e0e\u6b63\u786e\u7b54\u6848\u4e4b\u95f4\u7684\u5dee\u8ddd
    • \u4f18\u5316\u7b97\u6cd5\uff1a\u5982\u4f55\u5bf9\u6a21\u578b\u8fdb\u884c\u4f18\u5316
      graph LR\n  A[\u6a21\u578b] --> B[\u5b66\u4e60\u51c6\u5219];\n  B --> C[\u4f18\u5316\u7b97\u6cd5];\n  C-->A;
      \u6211\u60f3\u4e86\u4e00\u4e2a\u7b80\u5355\u7684\u4f8b\u5b50\uff0c\u5224\u65ad(0.5,3)\u5728\u54ea\u6761\u659c\u7387\u4e3a1\u7684\u7ebf\u4e0a
      graph LR\n    direction LR\n  C[\"\u4e8c\u7ef4\u5750\u6807\u70b9(0.5,3)\"]-->A[\u6a21\u578b\uff1ay=x+5]; \n  A--> B[\"\u8f93\u51fa\uff1a5.5\"];\n

    graph LR\n  D[\"\u4e8c\u7ef4\u5750\u6807\u70b9(0.5,3)\"]-->E[\u6a21\u578b\uff1ay=x+5]; \n  E--> F[\"\u8f93\u51fa\uff1a5.5\"];\n  F--> G[\u5b66\u4e60\u51c6\u5219\uff1a\u4f5c\u5dee,5.5-3=2.5];\n  G--> H[\u4f18\u5316\u7b97\u6cd5\uff1a\u5f25\u8865\u5dee: y=x+5-2.5];\n  H-->E;\n
    graph LR\n  A[\"\u4e8c\u7ef4\u5750\u6807\u70b9(0.5,3)\"]-->B[\u6a21\u578b\uff1ay=x+2.5]; \n  B--> C[\"\u8f93\u51fa\uff1a3\"];\n  C--> G[\u5b66\u4e60\u51c6\u5219\uff1a\u4f5c\u5dee,3-3=0];\n
    \u4e0a\u9762\u4e09\u4e2a\u6b65\u9aa4\u5c55\u793a\u4e09\u4e2a\u57fa\u672c\u8981\u7d20\u7684\u57fa\u672c\u5173\u7cfb\u3002\u4f46\u8fd9\u91cc\u53ea\u7528\u4e86\u4e00\u6b21\u5b66\u4e60\u5c31\u83b7\u5f97\u4e86\u6700\u4f73\u7ed3\u679c\uff0c \u5b9e\u9645\u95ee\u9898\u5f80\u5f80\u662f\u9700\u8981\u591a\u6b21\u5b66\u4e60\u6765\u903c\u8fd1\u771f\u5b9e\u6a21\u578b\u7684\u3002

    ","tags":["Neural Network","Deep Learning"]},{"location":"code/nndl/#_4","title":"\u5177\u4f53\u95ee\u9898\u5177\u4f53\u5206\u6790","text":"","tags":["Neural Network","Deep Learning"]},{"location":"game/","title":"Game","text":"\u6211\u5728\u73a9\u73a9\u8fc7
    • \u78a7\u84dd\u822a\u7ebf\uff1a\u9664\u4e86\u9ad8\u4e09\u65ad\u4e86\u4e00\u5e74\uff0c\u5f00\u670d\u4e00\u76f4\u73a9\u5230\u73b0\u5728\uff0c\u7a76\u6781\u8001\u54b8\u9c7c

      \u975e\u5e38\u826f\u5fc3\u7684\u6e38\u620f\uff0c\u9664\u4e86\u4e0d\u597d\u73a9\u54ea\u91cc\u90fd\u597d\uff0c\u6da9\u6da9\u662f\u6700\u201c\u5927\u201d\u7684\u7279\u70b9\u3002

    • \u660e\u65e5\u65b9\u821f\uff1a\u4e5f\u662f\u5f00\u670d\u4e00\u76f4\u73a9\u5230\u73b0\u5728\uff0c\u51e0\u4e4e\u6ca1\u65ad\u8fc7

      \u4e5f\u662f\u5f88\u597d\u7684\u6e38\u620f\uff0c\u5728\u5854\u9632\u4e8c\u6e38\u4e2d\u662f\u5f00\u62d3\u6027\u4e14\u72ec\u4e00\u6863\uff0c\u4e00\u76f4\u5728\u521b\u65b0

    • \u7edd\u533a\u96f6\uff1a\u4ece\u5d292\u5230\u5d293\uff0c\u518d\u5230\u539f\u795e\uff0c\u8df3\u8fc7\u94c1\uff0c\u5230\u4e86\u7edd\u533a\u96f6\u3002\u76ee\u524d\u4fdd\u6301\u96f6\u6c2a\u7eaa\u5f55\u4e2d

      \u5982\u679c\u4f60\u559c\u6b22\u52a8\u4f5c\u6e38\u620f\uff0c\u4f60\u5c31\u4e00\u5b9a\u80fd\u770b\u5230\u5b83\u7684\u52a8\u4f5c\u548c\u7f8e\u672f\u8bbe\u8ba1\u7684\u95ea\u5149\u70b9\u3002\u542c\u53d6\u73a9\u5bb6\u610f\u89c1\uff0c\u4e00\u76f4\u5728\u6539\u8fdb\uff0c\u5c0f\u5c0f\u5de5\u4f5c\u5ba4\u80fd\u5c55\u73b0 \u51fa\u8fd9\u4e48\u591a\u7684\u66f4\u65b0\uff0c\u5f88\u62c5\u5fc3\u4ed6\u4eec\u7684\u809d\u3002

    • \u516c\u4e3b\u8fde\u7ed3Re:Dive\uff1a\u5954\u7740\u7f8e\u672f\u4eba\u8bbe\u575a\u6301\u5728\u73a9\uff0c\u4f46\u5df2\u7ecf\u4e0d\u77e5\u9053\u4e3a\u4f55\u8981\u73a9\u4e86

      \u89d2\u8272\u5f88\u53ef\u7231\uff0c\u7f8e\u672f\u4e0d\u9519\uff0c\u4e5f\u4e0d\u6c2a\uff0c\u4ec5\u6b64\u800c\u5df2\u3002\u516c\u4f1a\u6218\u8bd7\u4eba\u63e1\u6301

    • \u851a\u84dd\u6863\u6848

      \u6bd4\u516c\u4e3b\u8fde\u7ed3\u597d\u4e00\u70b9\uff0c\u89d2\u8272\u8bbe\u8ba1\u5f88\u597d\uff0c\u5267\u60c5\u4e5f\u53ef\u5708\u53ef\u70b9\uff08\u4e3a\u6570\u4e0d\u591a\u770b\u8fc7\u5267\u60c5\u7684\uff09\uff0c\u5c31\u662f\u6709\u70b9\u6c2a\uff08\u6ca1\u6c2a\u8fc7\u4e00\u5206\u5c31\u662f\u4e86\uff09\uff0c \u5f88\u65e0\u804a\uff0c\u611f\u89c9\u5c31\u662f\u516c\u4e3b\u8fde\u7ed3\u8fd9\u6837\u7684\u9ad8\u914d\u7248\u3002

    • \u7ea2\u8b66\uff1a\u4ee5\u524d\u5f88\u559c\u6b22\u53bb\u90bb\u5c45\u5bb6\u73a9\u7ea2\u8b66\uff0c\u867d\u7136\u6ca1\u73a9\u61c2\u5c31\u662f\u4e86\uff0c\u7ecf\u5e38\u4e0b\u56de\u6765\u73a9\u3002\u6700\u8fd1\u73a9\u4e86\u65e5\u5195\u6a21\u7ec4

      \u753b\u9762\u5bf9\u5f53\u65f6\u7684\u6211\u771f\u7684\u65f6\u4e0d\u5c0f\u7684\u9707\u64bc\uff0c\u5404\u79cd\u65b0\u5947\u7684\u70b9\u5b50\u975e\u5e38\u6709\u610f\u601d\u3002\u81f3\u5c11\u6211\u5bf9\u5b83\u7684\u8bc4\u4ef7\u662f\u5f88\u9ad8\u7684

    • \u8d5b\u5c14\u53f7\uff1a\u56fd\u5185\u7ffb\u7248\u5b9d\u53ef\u68a6\uff0c\u4ece\u5c0f\u5b66\u4e00\u76f4\u73a9\u5230\u521d\u4e8c\u5de6\u53f3\uff0c\u4ee5\u524d\u7684\u7cbe\u7075\u8bbe\u8ba1\u90fd\u975e\u5e38\u6709\u7279\u70b9

      \u5c0f\u5b66\u65f6\u671f\u4ee3\u8868\uff0c\u540c\u65f6\u671f\u7684\u67094399\uff0c\u8d5b\u5c14\u53f7\uff0c\u9020\u68a6\u897f\u6e38\uff0c\u6469\u5c14\u5e84\u56ed

    • \u8650\u6740\u539f\u5f62\uff1a\u6740\u7684\u5f88\u723d

      \u521d\u4e2d\u65f6\u671f\u7684\u4ee3\u8868\uff0c\u8fd8\u8bb0\u5f97\u4ee5\u524d\u7528\u4e91\u6e38\u620f\u73a9\u4e86\u65e0\u4e3b\u4e4b\u5730

    • LOL\uff1a\u73a9\u4e86\u4e24\u5e74LOL\uff0c\u64c5\u957f\u73a9\u9ec4\u9e21\u548c\u6316\u6398\u673a\uff0c\u73b0\u5728\u5df2\u7ecf\u4e0d\u5728\u73a9\u4e86

      \u4f9d\u7136\u8bb0\u5f97\u5f53\u65f6\u4e0b\u8f7dLOL\uff0c\u5e76\u7b2c\u4e00\u6b21\u73a9\u8fd9\u79cd\u5927\u578b\u7f51\u6e38\u7684\u5fc3\u60c5

    • \u5d29\u574f\u5b66\u56ed2\uff1a\u521d\u4e09\u63a5\u89e6\u7684\uff0c\u975e\u5e38\u559c\u6b22\u7684\u5176\u753b\u98ce\u548c\u4e16\u754c\u89c2\uff0c\u81ea\u6b64\u6210\u4e3a\u7c73\u54c8\u6e38\u6b7b\u5fe0\u7c89\uff08\u867d\u7136\u73b0\u5728\u53ea\u5728\u73a9\u7edd\u533a\u96f6\uff09\uff0c\u5f53\u65f6\u7acb\u5fd7\u5165\u804c\u7c73\u54c8\u6e38\u3002\u4e0d\u77e5\u600e\u4e48\u6e10\u6e10\u4e0d\u73a9\u4e86\u3002

      \u6ee1\u660f\uff0c\u54ea\u6015\u6211\u4e0d\u73a9\u4e86\uff0c\u6211\u5bf9\u5b83\u7684\u8bc4\u4ef7\u4e5f\u662f\u6700\u9ad8\u7684\uff0c\u5f53\u65f6\u4e8c\u6e38\u5e02\u573a\u5361\u724c\u76db\u884c\uff0c\u5d29\u5d29\u5bf9\u6211\u6765\u8bf4\u5c31\u662f\u964d\u7ef4\u6253\u51fb\uff0c \u4e16\u754c\u89c2\uff0c\u7f8e\u672f\uff0c\u53ef\u73a9\u6027\uff0c\u5728\u6211\u5fc3\u91cc\u90fd\u662f\u9876\u7ea7\u3002\u5207\u52ff\u4ee5\u5982\u4eca\u7684\u773c\u5149\u770b\u8fd9\u4e2a\u8fc7\u53bb\u7684\u4f5c\u54c1\u3002

    • \u5d29\u574f3\uff1a\u9ad8\u4e2d\u63a5\u89e6\uff0c\u4ee5\u5d292\u4e3a\u5951\u673a\uff0c\u5173\u6ce8\u7c73\u54c8\u6e38\u3002\u5f53\u65f6\u5f00\u670d\u9650\u53f7\uff0c\u6211\u82b1\u4e8650rmb\u4e70\u4e861G\u6d41\u91cf\u5728\u5b66\u6821\u4e0b\u5d293\u62a2\u53f7\uff0c \u4e0d\u77e5\u4e3a\u4f55\u5bf9\u5176\u9010\u6e10\u5931\u53bb\u5174\u8da3

      \u624b\u673a\u52a8\u4f5c\u6e38\u620f\u5bf9\u5f53\u65f6\u7684\u6211\u4e5f\u662f\u964d\u7ef4\u6253\u51fb\uff0c\u753b\u9762\uff0c\u7f8e\u672f\uff0c\u52a8\u4f5c\uff0c\u90fd\u975e\u5e38\u9707\u60ca\u6211\u3002\u552f\u4e00\u7684\u7f3a\u70b9\u4fbf\u662f\u6c2a\u91d1\uff0c\u4ece\u6b64\u57cb\u4e0b\u4e86\u7c73\u6c60\u7684\u4f0f\u7b14

    • \u539f\u795e\uff1a\u73a9\u4e861\u5e74\u591a\uff0c\u56e0\u4e3a\u7ed9\u7684\u798f\u5229\u592a\u5c11\uff0c\u53c8\u62bd\u4e0d\u5230\uff0c\u4e0d\u77e5\u9053\u73a9\u7684\u610f\u4e49\uff0c\u4e8e\u662f\u5c31\u9000\u5751\u4e86

      \u5f00\u670d\u65f6\u975e\u5e38\u9707\u60ca\uff0c\u753b\u9762\uff0c\u7f8e\u672f\uff0c\u73a9\u6cd5\uff0c\u540c\u6837\u4e5f\u662f\u964d\u7ef4\u6253\u51fb\uff0c\u4f46\u662f\u62bd\u5361\u5f88\u4ee4\u4eba\u7834\u9632

    "},{"location":"game/azurLane/","title":"\u78a7\u84dd\u822a\u7ebf","text":""},{"location":"game/azurLane/#_2","title":"\u5171\u6597","text":"
    • 25\u5e74\u65b0\u5e74\u5171\u6597
    "},{"location":"game/azurLane/#_3","title":"\u5927\u4e16\u754c","text":"
    • \u5927\u4e16\u754c\u961f\u4f0d\u914d\u7f6e
    "},{"location":"game/azurLane/#_4","title":"\u811a\u672c","text":"
    • \u811a\u672c
    "},{"location":"game/azurLane/Fight_tg/","title":"\u5171\u6597\u5efa\u8bae","text":""},{"location":"game/azurLane/Fight_tg/#2025","title":"2025\u65b0\u5e74\u5171\u6597","text":"

    \u53ef\u524d\u5f80wiki\u53c2\u8003

    \u56f0\u96be\u6ee1\u961f\u5237\u7ecf\u9a8c\uff0c\u666e\u901a\u548c\u7b80\u5355\u4f4e\u8017

    \u56f0\u96be\u666e\u901a/\u7b80\u5355

    Note

    \u8981\u70b9\uff0c\u654c\u4eba\u4e3a\u4e2d\u7532\uff0c\u56e0\u6b64

    • \u9a71\u9010\uff1a\uff0c\u9c7c\u96f7\u968f\u4fbf\uff0c\u52a0\u4e2a\u996d\u76d2
    • \u8f7b\u5de1\u548c\u91cd\u5de1\uff1a\u968f\u4fbf\u5e26\uff0c\u6b7b\u4e0d\u4e86
    • \u6218\u5217\uff1a \uff0c\u52a0\u4e2a\u706b\u63a7
    • \u822a\u6bcd\uff1a \u8f70\u70b8\u548c\u9c7c\u96f7\u968f\u4fbf\uff0c\u4e0d\u91cd\u8981

    \u7a81\u51fb\u8005+\u5361/\u5510\uff0c\u6216\u8005\u4e24\u4e2a\u90fd\u5e26\uff0c\u6700\u597d\u7684\u90fd\u5e26\u4e0a\uff0c\u5305\u4e0d\u6b7b\u7684

    "},{"location":"game/azurLane/page_1/","title":"\u5927\u4e16\u754c\u961f\u4f0d\u914d\u7f6e","text":"","tags":["blhx"]},{"location":"game/azurLane/page_1/#for","title":"for \u8001\u54b8\u9c7c","text":"\u914d\u88c51\uff08\u6843\u4e4b\u592d\u592d\uff09\u914d\u88c52\uff08\u9eef\u7136\uff09

    \u7eaf\u901f\u5237\u961f\u914d\u7f6e

    Tip

    \u914d\u5408Alas\u4ee5\u53ca\u201c\u9eef\u7136\u201d\u7684\u914d\u7f6e\u4f7f\u7528, \u7b2c\u4e00\u961f2\u5976\u5988\u5e26\u4e00\u5806100\u7ea7\u4e00\u4e0b\u7ec3\u7ea7 \u7b2c\u4e8c\u961f\u5237\u5176\u4ed6\u6d77\u57df\uff0c\u901f\u5237

    ","tags":["blhx"]},{"location":"game/azurLane/page_2/","title":"\u811a\u672c","text":"

    \u89e3\u653e\u751f\u4ea7\u529b\uff0c\u89e3\u653e\u53cc\u624b

    ","tags":["blhx"]},{"location":"game/azurLane/page_2/#alas","title":"Alas","text":"

    \u53bb\u4e0b\u8f7d

    Tip

    \u6211\u63a8\u8350\u6240\u6709\u4eba\u81ea\u5df1\u9605\u8bfb\u4f7f\u7528\u65b9\u6cd5\u548c\u914d\u7f6e\u65b9\u6cd5\u3002

    \u4e0b\u9762\u662f\u4e00\u4e9b\u914d\u7f6e\uff0c\u53ef\u4ee5\u770b\u60c5\u51b5\u914d\u7f6e\uff1a

    \u4f5c\u8005 \u66f4\u65b0\u65f6\u95f4 \u4e0b\u8f7d \u9eef\u7136 2025\u5e741\u67087\u65e5","tags":["blhx"]},{"location":"music/","title":"\u97f3\u4e50","text":"

    \u97f3\u4e50\u5728\u6211\u7684\u751f\u6d3b\u4e2d\u4e0d\u53ef\u6216\u7f3a

    • \u4f4e\u97f3
    "},{"location":"music/bass/","title":"\u4f4e\u97f3\u7684\u9b45\u529b","text":"

    \u5929\u5929\u90fd\u5728\u201c\u8d1d\u65af\u7b11\u8bdd\u201d\uff0c\u4f46\u6bcf\u4e2a\u4e50\u961f\u8d1d\u65af\u53c8\u662f\u4e0d\u53ef\u6216\u7f3a\u7684\u5b58\u5728\u3002 \u5728\u8fd9\u91cc\u6211\u5206\u4eab\u4e00\u4e9b\u4f4e\u97f3\u6781\u5176\u51fa\u8272\uff0c\u6781\u5176\u4eae\u773c\u7684\u6b4c\u66f2

    • \u300a\u7121\u8d23\u4efb\u96c6\u5408\u4f53\u300b Movie, Music\uff1a\u30de\u30b5\u30e9\u30c0 Vocal: \u91cd\u97f3\u30c6\u30c8SV

      \u30de\u30b5\u30e9\u30c0\u662f\u4e00\u4f4d\u521a\u51fa\u9053\u7684p\u4e3b \u8fd9\u9996\u6b4c\u662f\u5176\u7b2c4\u9996\u66f2\u5b50\uff0c\u5728\u8fd9\u9996\u6b4c\u91cc\uff0cbass\u6210\u4e3a\u4e3b\u8c03\uff0c\u8282\u594f\u611f\u6781\u5f3a\uff0c\u914d\u5408MV\u6781\u5177\u611f\u67d3\u529b\u3002

    • \u300a\u30d5\u30a1\u30f3\u30c8\u30de\u30a4\u30ba\u300b Music , Lyrics , Arrangement : \u30a8\u30cf\u30e9\u30df\u30aa\u30ea Illustration : \u6cbc\u7530\u30be\u30f3\u30d3 Vocal: Such

      \u6bd4\u8f83\u51b7\u95e8\u7684\u6b4c\u66f2\uff0c\u4f46\u662f\u6211\u4e00\u542c\u5c31\u559c\u6b22\u4e0a\u4e86\uff0c \u4f4e\u97f3\u7684\u9f13\u70b9\u975e\u5e38\u6293\u8033\uff0c\u5bf9\u6bd4\u6ca1\u6709\u4f4e\u97f3\u9f13\u70b9\u548c\u6709\u4f4e\u97f3\u9f13\u70b9\u7684\u90e8\u5206\uff0c \u53ef\u4ee5\u53d1\u73b0\u975e\u5e38\u660e\u663e\u7684\u533a\u522b\u3002

    ","tags":["bass","\u4f4e\u97f3","music"]},{"location":"blog/archive/2025/","title":"2025","text":""},{"location":"blog/category/python/","title":"Python","text":""},{"location":"blog/category/%E6%9D%82%E8%B0%88/","title":"\u6742\u8c08","text":""},{"location":"blog/category/%E6%97%A5%E6%9C%AC/","title":"\u65e5\u672c","text":""},{"location":"blog/category/%E5%BB%BA%E7%AB%99/","title":"\u5efa\u7ad9","text":""},{"location":"tags/","title":"Tags","text":"

    \u4e0b\u9762\u662f\u4e00\u4e9b\u76f8\u5173\u6807\u7b7e\u7684\u5217\u8868:

    "},{"location":"tags/#algorithm","title":"Algorithm","text":"
    • \u7b97\u6cd5\u7684\u5b9e\u73b0
    "},{"location":"tags/#blog","title":"Blog","text":"
    • \u81ea\u5efa\u4e3b\u9875\uff1a\u59cb
    • Build A Simular Site
    "},{"location":"tags/#deep-learning","title":"Deep Learning","text":"
    • \u7b97\u6cd5\u7684\u5b9e\u73b0
    • \u795e\u7ecf\u7f51\u7edc\u4e0e\u6df1\u5ea6\u5b66\u4e60
    "},{"location":"tags/#html","title":"HTML","text":"
    • \u81ea\u5efa\u4e3b\u9875\uff1a\u59cb
    • Build A Simular Site
    "},{"location":"tags/#image","title":"Image","text":"
    • \u57fa\u4e8ePython\u7684\u89c6\u9891\u5904\u7406
    "},{"location":"tags/#material-for-mkdocs","title":"Material for MkDocs","text":"
    • \u81ea\u5efa\u4e3b\u9875\uff1a\u59cb
    • Build A Simular Site
    "},{"location":"tags/#neural-network","title":"Neural Network","text":"
    • \u7b97\u6cd5\u7684\u5b9e\u73b0
    • \u795e\u7ecf\u7f51\u7edc\u4e0e\u6df1\u5ea6\u5b66\u4e60
    "},{"location":"tags/#numpy","title":"Numpy","text":"
    • Numpy\u4e2d\u7684\u5e7f\u64ad\u673a\u5236
    "},{"location":"tags/#python","title":"Python","text":"
    • Numpy\u4e2d\u7684\u5e7f\u64ad\u673a\u5236
    • \u57fa\u4e8ePython\u7684\u89c6\u9891\u5904\u7406
    "},{"location":"tags/#template","title":"Template","text":"
    • Template
    "},{"location":"tags/#test","title":"Test","text":"
    • Test
    "},{"location":"tags/#vedio","title":"Vedio","text":"
    • \u57fa\u4e8ePython\u7684\u89c6\u9891\u5904\u7406
    "},{"location":"tags/#bass","title":"bass","text":"
    • \u4f4e\u97f3\u7684\u9b45\u529b
    "},{"location":"tags/#blhx","title":"blhx","text":"
    • blhx
    • Script
    "},{"location":"tags/#music","title":"music","text":"
    • \u4f4e\u97f3\u7684\u9b45\u529b
    "},{"location":"tags/#_1","title":"\u4e2a\u4eba\u7f51\u7ad9","text":"
    • \u81ea\u5efa\u4e3b\u9875\uff1a\u59cb
    • Build A Simular Site
    "},{"location":"tags/#_2","title":"\u4f4e\u97f3","text":"
    • \u4f4e\u97f3\u7684\u9b45\u529b
    "},{"location":"tags/#_3","title":"\u5e7f\u64ad\u673a\u5236","text":"
    • Numpy\u4e2d\u7684\u5e7f\u64ad\u673a\u5236
    "},{"location":"tags/#_4","title":"\u5efa\u7ad9","text":"
    • \u81ea\u5efa\u4e3b\u9875\uff1a\u59cb
    • Build A Simular Site
    "},{"location":"tags/#_5","title":"\u65e5\u672c","text":"
    • japen
    "},{"location":"tags/#_6","title":"\u673a\u5668\u5b66\u4e60","text":"
    • Numpy\u4e2d\u7684\u5e7f\u64ad\u673a\u5236
    "},{"location":"tags/#_7","title":"\u7559\u5b66","text":"
    • japen
    "},{"location":"tags/#_8","title":"\u8da3\u4e8b","text":"
    • \u7406\u5de5\u751f\u4e0d\u4f1a\u68a6\u89c1\u5df4\u752b\u6d1b\u592b\u6761\u4ef6\u53cd\u5c04
    "},{"location":"tags/#_9","title":"\u8db3\u8ff9","text":"
    • \u8db3\u8ff9
    "}]} \ No newline at end of file +{"config":{"lang":["en"],"separator":"[\\s\\u200b\\u3000\\-\u3001\u3002\uff0c\uff0e\uff1f\uff01\uff1b]+","pipeline":["stemmer"]},"docs":[{"location":"","title":"Welcome to \u9eef\u7136's Blog","text":"\u70b9\u6211\u770b\u770b!
    • \u4f60\u53ef\u80fd\u611f\u5174\u8da3\u7684

      \u4e00\u4e9b\u6709\u7528\u7684\u6587\u7ae0\uff08\u5b58\u7591\uff09

      \u53bb\u770b\u770b

    • \u5173\u4e8e\u6211

      \u6211\u662f\u4e2a...\u4eba\uff1f

      \u4e86\u89e3\u4e00\u4e0b

    • \u6211\u7684\u8db3\u8ff9

      \u4fdd\u6301\u5bf9\u8fd9\u4e2a\u4e16\u754c\u7684\u597d\u5947\u5fc3

      \u65bd\u5de5\u4e2d

    • \u7ed9\u6211\u4e5f\u6574\u4e00\u4e2a

      \u5982\u679c\u60a8\u8ba4\u540c\u6211\u7684\u535a\u5ba2\u8bbe\u8ba1\uff0c\u53ef\u4ee5\u4ece\u8fd9\u91cc\u5feb\u901f\u90e8\u7f72

      \u5f00\u6574

    "},{"location":"Doc_skill/","title":"MkDocs\u64b0\u5199\u6280\u5de7","text":"

    \u8bb0\u5f55\u4e00\u4e9b\u6709\u7528\u7684MkDocs\u7684\u64b0\u5199\u8bed\u6cd5\uff0c\u6280\u5de7\u7b49\uff0c\u968f\u65f6\u67e5\u9605\u3002\u4e3b\u8981\u8bb0\u5f55\u4e00\u4e9b\u6211\u7528\u8fc7\u6216\u8005\u89c9\u5f97\u6709\u7528\u7684\u4e00\u4e9b\u8bed\u6cd5\uff0c\u6bd5\u7adf\u5e76\u4e0d\u662f\u8d8a\u591a\u8d8a\u597d\u3002

    Info

    \u672c\u6587\u6240\u8ff0\u8bed\u6cd5\u5e76\u4e0d\u662f\u57fa\u672cMarkDown\u8bed\u6cd5\uff0c\u5176\u4f9d\u8d56\u4e8e\u5404\u79cd\u6269\u5c55\uff0c\u8bf7\u5728\u52a0\u8f7d\u5bf9\u5e94\u6269\u5c55\u540e\u518d\u4f7f\u7528

    ","tags":["Test"]},{"location":"Doc_skill/#admonitions","title":"\u8b66\u544a(Admonitions)","text":"

    \u8be6\u60c5\u8bf7\u67e5\u9605\u539f\u6587\u3002

    \u5f15\u7528

    \u4eba\u751f\u4e09\u95ee\uff0c\u6211\u662f\u8c01\uff0c\u6211\u4ece\u54ea\u91cc\u6765\uff0c\u6211\u5230\u54ea\u91cc\u53bb\u3002 \u2014\u2014from \u6c11\u95f4

    \u52a8\u624b\u505a\u4e00\u505a\u5427

    \u6bd4\u8d77\u201c\u4f8b\u5b50\u201d\u8fd9\u4e2a\u89e3\u91ca\uff0c\u6211\u89c9\u201c\u52a8\u624b\u505a\u4e00\u505a\u201d\u8fd9\u4e2a\u66f4\u9002\u5408\uff0c\u5c31\u50cf\u8bfe\u540e\u4e60\u9898\u4e00\u6837

    \u63d0\u793a

    \u539f\u6587 \u6709\u5f88\u591a\u53ef\u4ee5\u8868\u793a\u63d0\u793a\u7684\u683c\u5f0f\uff0c\u6682\u65f6\u89c9\u5f97\u8fd9\u4e2a\u66f4\u597d\u4e00\u70b9\u3002

    ","tags":["Test"]},{"location":"Doc_skill/#emojisbuttons","title":"\u8868\u60c5(Emojis)\u548c\u6309\u94ae(Buttons)","text":"
    [\u524d\u5f80\u641c\u7d22emoji :octicons-search-16:][tab_1]{ .md-button }\n\n[tab_1]: https://squidfunk.github.io/mkdocs-material/reference/icons-emojis/#search\n

    \u524d\u5f80\u641c\u7d22emoji

    ","tags":["Test"]},{"location":"Doc_skill/#annotations","title":"\u6ce8\u91ca(Annotations)","text":"

    See more (1)

    1. Annotations

    \u4ee3\u7801\u4e2d\u7684Annotations:

    theme:\n  features:\n    - content.code.annotate # (1)!\n

    1. \u4f7f\u7528\u8fd9\u4e2a\u6ce8\u91ca\u65b9\u6cd5\uff1a# (1)!
    ","tags":["Test"]},{"location":"Doc_skill/#code-blocks","title":"\u4ee3\u7801\u5757(Code blocks)","text":"","tags":["Test"]},{"location":"Doc_skill/#_1","title":"\u52a0\u6807\u9898","text":"test.md
    ``` py title=\"bubble_sort.py\"\ndef bubble_sort(items):\n    for i in range(len(items)):\n        for j in range(len(items) - 1 - i):\n            if items[j] > items[j + 1]:\n                items[j], items[j + 1] = items[j + 1], items[j]\n```\n
    ","tags":["Test"]},{"location":"Doc_skill/#_2","title":"\u52a0\u884c\u53f7","text":"
    ``` py linenums=\"1\"\ndef bubble_sort(items):\n    for i in range(len(items)):\n        for j in range(len(items) - 1 - i):\n            if items[j] > items[j + 1]:\n                items[j], items[j + 1] = items[j + 1], items[j]\n```\n
    ","tags":["Test"]},{"location":"Doc_skill/#_3","title":"\u884c\u9ad8\u4eae","text":"LinesLine ranges Code block with highlighted lines
    ``` py hl_lines=\"2 3\"\ndef bubble_sort(items):\n    for i in range(len(items)):\n        for j in range(len(items) - 1 - i):\n            if items[j] > items[j + 1]:\n                items[j], items[j + 1] = items[j + 1], items[j]\n```\n
    def bubble_sort(items):\n    for i in range(len(items)):\n        for j in range(len(items) - 1 - i):\n            if items[j] > items[j + 1]:\n                items[j], items[j + 1] = items[j + 1], items[j]\n
    Code block with highlighted line range
    ``` py hl_lines=\"3-5\"\ndef bubble_sort(items):\n    for i in range(len(items)):\n        for j in range(len(items) - 1 - i):\n            if items[j] > items[j + 1]:\n                items[j], items[j + 1] = items[j + 1], items[j]\n```\n
    def bubble_sort(items):\n    for i in range(len(items)):\n        for j in range(len(items) - 1 - i):\n            if items[j] > items[j + 1]:\n                items[j], items[j + 1] = items[j + 1], items[j]\n
    ","tags":["Test"]},{"location":"Doc_skill/#iconapi","title":"\u83b7\u53d6\u7f51\u9875ICON\u7684api","text":"

    favicone

    <!-- example -->\nhttps://favicone.com/google.com\n
    https://0x3.com/

    <!-- example -->\nhttps://0x3.com/icon?host=www.bilibili.com\n
    ","tags":["Test"]},{"location":"about/","title":"\u5173\u4e8e\u6211","text":"

    \u4eba\u751f\u4e09\u95ee

    \u4eba\u751f\u4e09\u95ee\uff0c\u6211\u662f\u8c01\uff0c\u6211\u4ece\u54ea\u91cc\u6765\uff0c\u6211\u5230\u54ea\u91cc\u53bb\u3002 \u2014\u2014from \u6c11\u95f4

    \u4eba\u751f\u4e09\u554f\uff0c\u4eba\u70ba\u4f55\u800c\u6d3b\uff1f\u61c9\u5982\u4f55\u751f\u6d3b\uff1f\u53c8\u61c9\u5982\u4f55\u624d\u80fd\u6d3b\u51fa\u61c9\u6d3b\u51fa\u7684\u751f\u547d\uff1f \u2014\u2014from \u53f0\u6e7e\u5927\u5b66 \u5b6b\u6548\u667a

    • \u201c\u6211\u662f\u8c01\u201d\u5373\u81ea\u6211\uff0c\u5373\u73b0\u5728\uff0c
    • \u201c\u6211\u4ece\u54ea\u91cc\u6765\u201d\u5373\u8fc7\u53bb\uff0c
    • \u201c\u6211\u5230\u90a3\u91cc\u53bb\u201d\u5373\u5c06\u6765\u3002
    \u6211\u662f\u8c01\uff1f\u6211\u6765\u81ea\u54ea\u91cc\uff1f\u6211\u4e3a\u4f55\u800c\u6d3b\uff1f \u6211\u7231\u6298\u817e\u7801\u519cC\u8bed\u8a00DIYINFJ\u5b85\u7537\u6307\u6325\u5b98\u5200\u5ba2\u5854\u7ef3\u5320
    • \u7a0b\u667a\u8d85\uff1a\u7236\u6bcd\u8d50\u59d3\u7a0b\uff0c\u6765\u81ea\u7236\uff0c\u8d50\u540d\u667a\u8d85\uff0c\u6765\u81ea\u667a\u6167\u8fc7\u4eba\u4e4b\u610f\u3002\u7b80\u5355\u76f4\u767d\u7684\u540d\u5b57\u3002
    \u6709\u591a\u5c11\u540c\u540d\u540c\u59d3

    \u6839\u636e\u516c\u5b89\u90e8\u4fbf\u6c11\u670d\u52a1\u63d0\u4f9b\u6570\u636e\uff0c\u622a\u6b622024/12/24\uff0c\u5171\u6709216\u540d\u7537\u6027\uff0c16\u540d\u5973\u6027\u4e0e\u6211\u540c\u540d\u3002

    • \u9eef\u7136\uff1a\u7f51\u540d\u4e4b\u4e00\u3002\u66fe\u7ecf\u559c\u6b22\u7eff\u8272\uff0c\u6545\u53d6\u7f51\u540d\u7eff\u7eff\u9eef\u7136\uff0c\u540e\u6539lvlv\u9eef\u7136\u3002\u56e0\u4e0e\u4e24\u4f4d\u7d20\u672a\u8c0b\u9762\u7684\u7f51\u53cb\u6253\u82f1\u96c4\u8054\u76df\u7ecf\u5e38\u88ab\u7b80\u79f0\u9eef\u7136\uff0c\u81ea\u6b64\u7559\u5b58
    • Lvista: \u7f51\u540d\u4e4b\u4e8c\u3002lv\u4e3a\u7eff\u4e4b\u610f\uff0cvista\u5728\u82f1\u6587\u4e2d\u6709\u8fdc\u666f\u4e4b\u610f\uff0c\u867d\u7136\u662f\u5999\u624b\u5076\u5f97\u4e4b\uff0c\u4f46\u5199\u8be5\u6587\u65f6\u6ce8\u610f\u5230\u53ef\u80fd\u4e0eWindows Vista\u6709\u5173\u3002

      \u5176\u5b9e\u4ece\u672a\u7528\u8fc7Windows Vista\uff0c\u6700\u65e9\uff0c\u7528\u7684\u6700\u591a\u7684\u4e5f\u5c31\u662fXP\u3002

    \u7231\u6298\u817e\uff0c\u6709\u65f6\u5019\u4f1a\u56e0\u4e3a\u4e00\u4e2a\u5c0f\u95ee\u9898\u800c\u7279\u610f\u53bb\u6298\u817e\uff0c \u6bd4\u5982\u6700\u8fd1\u5728\u7528latex\u5199\u6bd5\u4e1a\u8bba\u6587\uff0c\u56e0\u4e3a\u5accwindows\u5e73\u53f0\u7f16\u8bd1\u6162\uff0c \u7279\u610f\u7528\u8001\u7b14\u8bb0\u672c\u88c5\u4e86\u4e00\u4e2aUbuntu\uff0c\u610f\u5916\u7684\u597d\u7528\u3002

    \u521b\u5efa\u8fd9\u4e2a\u7f51\u7ad9\u65f6\uff0c\u60f3\u505a\u4e00\u4e2a\u7ffb\u8f6c\u5934\u50cf\u7684\u6548\u679c\uff0c\u4f46\u56e0\u4e3a\u4e0d\u61c2html\uff0c \u67e5\u9605\u5404\u79cd\u8d44\u6599\uff08\u5305\u62ecGPT\uff09\uff0c\u6700\u7ec8\u5f04\u51fa\u6765\u4e86\u3002

    • \u6700\u719f\u6089\uff1aC(\u5d4c\u5165\u5f0f), C++(\u5d4c\u5165\u5f0f), C#(Unity)
    • \u8fd8\u884c\uff1aPython, Java
    • \u80fd\u8bfb\u61c2\uff1aSQL, HTML,

    Note

    \u6211\u5f88\u559c\u6b22\u7f16\u7a0b\u3002\u6211\u7684\u6bcd\u4eb2\u662f\u4e00\u4f4d\u8ba1\u7b97\u673a\u8001\u5e08\uff0c\u53d7\u5230\u5979\u7684\u5f71\u54cd\uff0c \u51fa\u751f\uff08\u751a\u81f3\u662f\u51fa\u751f\u524d\uff09\u5c31\u63a5\u89e6\u8ba1\u7b97\u673a\uff0c\u521d\u4e2d\u63a5\u89e6\u7b2c\u4e00\u95e8\u8bed\u8a00\uff0cC\u8bed\u8a00\u3002 \u4f46\u6211\u5e76\u4e0d\u662f\u79d1\u73ed\u51fa\u8eab(1)\uff0c\u5b66\u7684\u6bd4\u8f83\u6742\u3002

    1. \u9ad8\u8003\u62a5\u8003\u65f6\uff0c\u6bcd\u4eb2\u529d\u6212\u6211\u522b\u5b66\u8ba1\u7b97\u673a\uff0c\u800c\u6211\u7269\u7406\u662f\u6700\u597d\u7684\uff0c\u6240\u4ee5\u9009\u4e86\u5e94\u7528\u7269\u7406\u5b66. \u867d\u7136\u4e5f\u662f\u843d\u699c\u5bfc\u81f4\u6ed1\u5230\u4e86\u8fd9\u4e2a\u5b66\u6821\u8fd9\u4e2a\u4e13\u4e1a\u5c31\u662f\u4e86\u3002\u4f46\u6211\u4f9d\u7136\u559c\u6b22\u7f16\u7a0b\uff0c \u7855\u58eb\u8003\u8fdb\u5357\u4eac\u7406\u5de5\u5927\u5b66\u7684\u4eea\u5668\u7cfb\uff0c\u641e\u7535\u8def\uff0c\u534a\u5e74\u540e\u53c8\u8d70\u53cc\u5b66\u4f4d\u9879\u76ee\u6765\u65e5\u672c\u641e\u4eba\u673a\u4ea4\u4e92\uff0c \u53c8\u641e\u4ee3\u7801\u3002\u5e94\u8be5\u8bf4\u6211\u662f\u5565\u90fd\u61c2\u5565\u90fd\u4f1a\u5427\ud83d\ude02

    \u6211\u6700\u65e9\u63a5\u89e6\u7684\u662fC\u8bed\u8a00\uff0c\u540e\u9762\u5d4c\u5165\u5f0f\u73a9\u7684\u591a\uff0c\u4e5f\u6210\u4e86\u6211\u6700\u719f\u6089\u7684\u8bed\u8a00\u3002 \u7531\u4e8e\u662fOPP\u7f16\u7a0b\uff0c \u6211\u5230\u73b0\u5728\u4e5f\u8fd8\u4fdd\u7559\u4ee5\u8fc7\u7a0b\u4e3a\u4e3b\u7ebf\u7684\u7f16\u7a0b\u4e60\u60ef\u3002

    \u8fd9\u4e5f\u5bfc\u81f4\u6211\u6700\u521d\u65e0\u6cd5\u7406\u89e3OOP\u7f16\u7a0b\uff0c \u62bd\u8c61\u7a0b\u5ea6\u8fc7\u9ad8\u5bfc\u81f4\u7684\u9ed1\u76d2\u6548\u5e94\uff0c \u5404\u79cd\u4f9d\u8d56\u5d4c\u5957\uff0c\u8ba9\u6211\u5f88\u6050\u614c\u3002

    \u4f46\u6bd5\u7adf\u662f\u65f6\u4ee3\u7684\u53d1\u5c55\uff0c\u4f5c\u4e3a\u7a0b\u5e8f\u5458\u600e\u4e48\u80fd\u4e0d\u8ddf\u7d27\u65f6\u4ee3\u7684\u811a\u6b65\u5462

    DIY\uff0c\u5373Do It Yourself\uff0c\u81ea\u5df1\u52a8\u624b\uff0c\u4e30\u8863\u8db3\u98df\u3002

    • \u7f16\u7a0b\uff1a\u67e5\u4e00\u67e5\u5c31\u5b66\u4e00\u5b66\u5c31\u77e5\u9053\u4e86
    • \u505a\u996d\uff1a\u770b\u4e00\u770b\uff0c\u5b66\u7740\u505a\u4e00\u505a\u5c31\u77e5\u9053\u4e86
    • \u5176\u4ed6\uff1a\u770b\u4e00\u770b\uff0c\u5b66\u7740\u505a\u4e00\u505a\u5c31\u77e5\u9053\u4e86

    \u6211\u662f\u5b9e\u8df5\u6d3e\uff0c\u601d\u8003\u7406\u8bba\u82b1\u8d39\u6211\u66f4\u591a\u65f6\u95f4\u3002

    \u6211\u662f\u4e00\u4e2aINFJ\uff0c \u559c\u6b22\u601d\u8003\uff0c\u559c\u6b22\u5206\u6790\uff0c\u559c\u6b22\u603b\u7ed3\u3002\u8eab\u8fb9\u7684INFJ\u8fd8\u633a\u591a\uff0c\u6bd4\u5982\u53f3\u8fb9\u53cb\u60c5\u94fe\u63a5\u4e2d\u7684\u5f20\u6768\u540c\u5b66

    \u559c\u6b22\u4e8c\u6b21\u5143\uff0c\u9b3c\u755c\uff0c\u5404\u79cd\u4e9a\u6587\u5316\uff0c \u6df7\u8ff9\u4e8ebilibili\uff0c\u97f3\u4e50\uff0c\u6e38\u620f\uff0c\u4ee3\u7801\u7b49\uff0c\u4e00\u53f0\u7535\u8111\u5c31\u591f\u6211\u5728\u623f\u95f4\u91cc\u73a9\u4e0a\u4e00\u6574\u5929

    \u78a7\u84dd\u822a\u7ebf\u8d44\u6df1\u73a9\u5bb6\uff0c\u5f00\u670d\u73a9\u5230\u73b0\u5728\uff0c\u62c5\u4efb\u8230\u957f\uff0c\u5927\u5c31\u662f\u597d

    \u660e\u65e5\u65b9\u821f\u8001\u73a9\u5bb6\uff0c\u6284\u4f5c\u4e1a\u73a9\u5bb6\uff0c\u4e0d\u73a9\u8089\u9e3d

    \u96f6\u6c2a\u7edd\u8d5e\u8fdb\u884c\u4e2d

    \u7965\u4e91\u53bf\u5357\u4eac\u4fe1\u606f\u5de5\u7a0b\u5927\u5b66\u5357\u4eac\u7406\u5de5\u5927\u5b66\u798f\u5ca1\u5de5\u696d\u5927\u5b66

    \u8001\u5bb6\u4e91\u5357\u5927\u7406\u7684\u7965\u4e91\u53bf\uff0c\u662f\u4e00\u4e2a\u5c0f\u53bf\u57ce\uff0c \u4e0e\u5927\u7406\u5e02\u76f8\u90bb\uff0c\u662f\u901a\u5f80\u6ec7\u897f\u5730\u533a\u7684\u5173\u9698\u4e4b\u5730\u3002

    \u4e91\u5357\u4e4b\u6e90

    \u7965\u4e91\u53bf\u5386\u53f2\u60a0\u4e45\uff0c\u897f\u6c49\u5143\u5c01\u4e8c\u5e74\uff08\u524d109\u5e74\uff09\u8bbe\u53bf\uff0c\u540d\u4e91\u5357\u53bf\uff0c\u662f\u4e91\u5357\u7701\u540d\u7684\u8d77\u6e90\u5730\uff0c\u6709\u201c\u4e91\u5357\u4e4b\u6e90\u201d\u201c\u5f69\u4e91\u4e4b\u4e61\u201d\u7684\u8a89\u79f0\uff0c\u66fe\u7ecf\u957f\u671f\u4e3a\u6ec7\u897f\u5317\u7684\u653f\u6cbb\u3001\u7ecf\u6d4e\u548c\u6587\u5316\u4e2d\u5fc3\u30021918\u5e74\uff0c\u4e3a\u514d\u7701\u53bf\u540c\u540d\uff0c\u4e91\u5357\u53bf\u6539\u79f0\u7965\u4e91\u53bf\u3002\u2014\u2014from wiki

    \u6bcf\u4e2a\u7965\u4e91\u4eba\u90fd\u7231\u901b\u7684\u5730\u65b9\u2014\u2014\u949f\u9f13\u697c \u4f5c\u8005\uff1aKcx36

    \u672c\u79d1\u6bcd\u6821\uff0c\u5e94\u7528\u7269\u7406\u4e13\u4e1a\uff0c4\u5e74\u8fc7\u7684\u975e\u5e38\u201c\u8282\u80fd\u201d\uff08\u5c31\u50cf\u51b0\u83d3\u91cc\u7684\u6298\u6728\u5949\u592a\u90ce\uff09\uff0c\u6ca1\u6302\u8fc7\u79d1\uff0c\u6210\u7ee9\u4e5f\u662f\u4e2d\u7b49\u504f\u4e0a\uff0c \u4f46\u4e5f\u6ca1\u505a\u4ec0\u4e48\u7279\u522b\uff0c\u6ca1\u4ec0\u4e48\u6210\u679c\u3002\u611f\u89c9\u6700\u53d7\u76ca\u7684\u662f\u9ad8\u6570\uff0c\u5149\u5b66\uff0c\u7269\u7406\u5b66\uff0c\u7535\u8def\uff0c\u5d4c\u5165\u5f0f

    \u5b66\u6821\u867d\u7136\u662f\u53cc\u975e\uff0c\u4f46\u6211\u4f9d\u7136\u611f\u6fc0\u8001\u5e08\u548c\u540c\u5b66\uff0c\u8fd8\u6709\u996d\u5802\u3002 \u7279\u522b\u662f\u8ba9\u6211\u7ed3\u8bc6\u4e86\u51e0\u4f4d\u631a\u53cb\u3002

    \u9760\u7740\u52aa\u529b\u8003\u4e0a\u5357\u7406\u5de5\u7684\u7814\u7a76\u751f\uff0c\u5fae\u7cfb\u7edf\u4e0e\u6d4b\u63a7\u6280\u672f(1)\u65b9\u5411\uff0c\u56e0\u4e3a\u6ca1\u4eba\u5f53\u8d39\u529b\u4e0d\u8ba8\u597d\u7684\u73ed\u957f\uff0c \u6211\u5c31\u6210\u4e3a\u4e86\u73ed\u957f\u3002\u4f46\u4e0a\u4e86\u534a\u5e74\u5c31\u6765\u65e5\u672c\u4e86\uff0c\u7ed3\u8bc6\u4e86\u6700\u597d\u7684\u5ba4\u53cb\u6768\u8301\u540c\u5b66\uff0c \u5728\u6211\u8eab\u5728\u4ed6\u4e61\u7684\u65f6\u5019\u5e2e\u4e86\u6211\u5f88\u591a\u5fd9\u3002

    1. \u5c5e\u4e8e\u673a\u68b0\u9662\u7684\u4eea\u5668\u7cfb\uff0c\u641e\u7535\u8def\u548c\u6d4b\u63a7\u4eea\u5668\u7684\uff0c\u4e0e\u672c\u79d1\u7684\u5e94\u7528\u7269\u7406\u76f8\u6bd4\uff0c \u6709\u70b9\u8de8\u5b66\u79d1\u4e86\u3002

    \u6545\u4e8b\u8fd8\u672a\u7ed3\u675f...

    \u53c2\u52a0\u5357\u7406\u5de5\u7684\u53cc\u5b66\u4f4d\u9879\u76ee\uff0c\u5728\u65e5\u672c\u7559\u5b662\u5e74\uff08\u5357\u7406\u5de5\u4e5f\u5728\u7c4d\uff09

    See more

    \u5b8f\u89c2\u52a8\u753b\u6e38\u620f\u97f3\u4e50
    • \u6c42\u77e5\uff1a\u4e0e\u5927\u591a\u7406\u5de5\u751f\u4e00\u6837\uff0c\u5bf9\u8fd9\u4e2a\u4e16\u754c\u5145\u6ee1\u4e86\u597d\u5947\uff0c\u5404\u79cd\u7269\u7406\uff0c\u6570\u5b66\uff0c \u5316\u5b66\uff08\u867d\u7136\u6211\u5316\u5b66\u6781\u5dee\uff09\u5bf9\u6211\u4eec\u6765\u8bf4\u5145\u6ee1\u4e86\u9b45\u529b\uff0c\u7f51\u7edc\u548c\u73b0\u5b9e\u65e0\u6240\u8c13\uff0c \u91cd\u8981\u7684\u662f\u6709\u8da3\uff0c\u8ba9\u6211\u6709\u63a2\u7d22\u7684\u6b32\u671b\u3002
    • \u68a6\u60f3\uff1a\u73af\u6e38\u4e16\u754c\u3002\u6240\u8c13\u201c\u8bfb\u4e07\u5377\u4e66\uff0c\u884c\u4e07\u91cc\u8def\u201d\uff0c\u4e66\u7684\u9b45\u529b\u81ea\u4e0d\u5fc5\u591a\u8bf4\uff0c \u96be\u4ee5\u89e6\u53ca\u662f\u6574\u4e2a\u4e16\u754c\uff01\u73af\u6e38\u4e16\u754c\u662f\u6211\u6700\u5927\u7684\u68a6\u60f3\u3002
    • \u6211\u548c\u7236\u6bcd\uff1a\u300c\u4eba\u4e0d\u4e3a\u5df1\uff0c\u5929\u8bdb\u5730\u706d\u300d(1)\uff0c\u6211\u65e0\u6cd5\u4e3a\u81ea\u5df1\u7684\u81ea\u79c1\u8fa9\u9a73\uff0c \u4f46\u7236\u6bcd\u7ed9\u4e88\u4e86\u6211\u751f\u547d\uff0c\u5c06\u6211\u517b\u80b2\u6210\u4eba\uff0c\u5176\u6069\u60c5\u6211\u6050\u6015\u6211\u7528\u4e00\u751f\u90fd\u65e0\u6cd5\u507f\u8fd8\uff0c\u6240\u4ee5\u4e3a\u4e86\u4e0d\u8f9c\u8d1f\u4ed6\u4eec\uff0c \u6211\u5fc5\u987b\u6d3b\u4e0b\u53bb\u3002

      1. \u5176\u771f\u6b63\u542b\u4e49\u8c8c\u4f3c\u5df2\u65e0\u6cd5\u8003\u636e\uff0c\u6211\u8fd9\u91cc\u53d6\u6700\u901a\u4fd7\u7684\u89e3\u91ca\uff0c \u53ef\u4ee5\u5728\u77e5\u4e4e\u4e2d\u56f4\u89c2\u8ba8\u8bba

    \u6700\u5927\u7684\u7231\u597d\u4e4b\u4e00\uff0c\u827a\u672f\u5bf9\u6211\u6709\u5f3a\u5927\u7684\u5438\u5f15\u529b\uff0c\u52a8\u753b\u4e5f\u5305\u62ec\u5728\u5185\u3002\u867d\u7136\u73b0\u5728\u5df2\u7ecf\u57fa\u672c\u4e0d\u8ffd\u65b0\u756a\u4e86\uff0c\u4f46\u4f9d\u7136\u4f1a\u5173\u6ce8\u8bc4\u4ef7\u597d\u7684\u52a8\u753b\u4f5c\u54c1

    • \u5165\u95e8\u4f5c\u662f\u5bb6\u5ead\u6559\u5e08\uff0c
    • \u5165\u5751\u4f5c\u662f\u5b66\u56ed\u9ed8\u793a\u5f55\uff0c
    • \u672c\u540d\u4f5c\u662f\u6e38\u620f\u4eba\u751f\uff0c
    • \u6700\u4f73\u4f5c\u662f\u4e52\u4e53
    • \u6700\u559c\u6b22\u7684\u56fd\u6f2b\u662f\u51f8\u53d8\u82f1\u96c4BABA

    \u5173\u4e8e\u52a8\u753b\u66f4\u591a\u7684\u8ba8\u8bba\uff0c\u53ef\u4ee5\u770b\u770bAnime\u677f\u5757

    \u6700\u5927\u7684\u7231\u597d\u4e4b\u4e8c\uff0c\u4f46\u73a9\u7684\u6e38\u620f\u975e\u5e38\u5c11\u3002\u4ece4399\u5230\u8d5b\u5c14\u53f7\uff0c\u4ece\u8650\u6740\u539f\u578b\u5230LOL\uff0c \u4ece\u5d29\u574f\u5b66\u56ed2\u5230\u78a7\u84dd\u822a\u7ebf\uff0c\u4ece\u539f\u795e\u5230\u7edd\u533a\u96f6\u3002\u73b0\u5728\u73a9\u7684\u4e0d\u591a\u4e86

    \u5173\u4e8e\u6e38\u620f\u66f4\u591a\u7684\u8ba8\u8bba\uff0c\u53ef\u4ee5\u770b\u770bGame\u677f\u5757

    \u4ece\u5468\u6770\u4f26\uff0c\u9648\u5955\u8fc5\uff0c\u5230\u6b27\u7f8e\uff0c\u518d\u5230jpop\uff0c\u4ece\u6d41\u884c\u5230\u6447\u6eda\uff0c\u4ece\u53e4\u5178\u5230\u7535\u5b50\uff0c\u4ec0\u4e48\u90fd\u542c\u3002 \u53ea\u8981\u662f\u597d\u542c\u7684\u97f3\u4e50\uff0c\u6211\u90fd\u6765\u8005\u4e0d\u62d2\u3002

    \u5173\u4e8e\u97f3\u4e50\u66f4\u591a\u7684\u8ba8\u8bba\uff0c\u53ef\u4ee5\u770b\u770bMusic\u677f\u5757

    "},{"location":"about/#_2","title":"\u5173\u4e8e\u6211\u7684\u5934\u50cf","text":"\u6b63\u9762\u53cd\u9762

    \u7b97\u662f\u6211\u7f51\u7edc\u4e0a\u7684\u5e38\u7528\u5934\u50cf\u4e86\uff0c\u6765\u81ea\u7f51\u7edc\uff0c\u4f5c\u8005\u672a\u77e5\uff0c\u662f\u6211\u7684\u672c\u547d\u4f5c\u300a\u30ce\u30fc\u30b2\u30fc\u30e0\u30fb\u30ce\u30fc\u30e9\u30a4\u30d5\u300b\uff08\u4e2d\u6587\uff1a\u6e38\u620f\u4eba\u751f\uff09\u4e2d\u7684\u4e24\u4f4d\u4e3b\u89d2\u3002\u5173\u4e8e\u6211\u5bf9\u8fd9\u4e2a\u4f5c\u54c1\u7684\u8ba8\u8bba\uff0c\u53ef\u79fb\u6b65\u8be6\u60c5\u3002

    \u65e5\u51fa\u4e4b\u65f6\u5230\u8fbe\u5bcc\u58eb\u5c71\u9876\uff0c\u5728\u706b\u5c71\u53e3\u62cd\u7684\u7167\uff0c\u5728bilibili\u6295\u7a3f\u4e86\u89c6\u9891

    "},{"location":"template/","title":"Template","text":"

    \u8fd9\u662f\u4e00\u4e2a\u6807\u51c6\u6a21\u677f

    this is a stander template

    ","tags":["Template"]},{"location":"test/","title":"Test","text":"

    Just a page for testing

    "},{"location":"test/#pyscript-example","title":"PyScript Example","text":"

    \u4e0b\u9762\u662f\u4e00\u4e2a PyScript \u793a\u4f8b\uff1a

    "},{"location":"world/","title":"\u8db3\u8ff9","text":"

    \u8fd9\u662f\u4e00\u4e2a\u6807\u51c6\u6a21\u677f

    this is a stander template

    ","tags":["\u8db3\u8ff9"]},{"location":"anime/","title":"\u52a8\u753b","text":"
    • \u6e38\u620f\u4eba\u751f
    "},{"location":"anime/ngnl/","title":"\u5173\u4e8e\u30ce\u30fc\u30b2\u30fc\u30e0\u30fb\u30ce\u30fc\u30e9\u30a4\u30d5\uff08\u6e38\u620f\u4eba\u751f\uff09","text":"

    \u65e5\u6587\u5047\u540d\u8bd1\u81eaNo Game No Life\uff08\u7b80\u5199\u4f5cngnl\uff09\u3002\u6211\u6700\u65e9\u4eceTV\u52a8\u753b\u5f00\u59cb\u63a5\u89e6\uff0c\u4e4b\u540e\u5f00\u59cb\u8bfb\u5c0f\u8bf4\uff0c\u540e\u9762\u53c8\u51fa\u4e86\u9707\u60ca\u5708\u5185\u7684\u5267\u573a\u7248\u3002TV\u52a8\u753b\u548c\u5267\u573a\u7248\u6211\u90fd\u662f\u975e\u5e38\u63a8\u8350\u7684\u4f73\u4f5c\u4e2d\u7684\u4f73\u4f5c\u3002

    Note

    \u4e4b\u6240\u4ee5\u53ea\u80fd\u7b97\u662f\u4f73\u4f5c\uff0c\u662f\u56e0\u4e3a\u5bf9\u4e8e\u52a8\u753b\u672c\u8eab\uff0c\u6211\u5fc3\u4e2d\u7684\u7b2c\u4e00\u540d\u5176\u5b9e\u662f\u300a\u4e52\u4e53\u300b\uff0c\u5173\u4e8e\u300a\u4e52\u4e53\u300b\u66f4\u591a\u7684\u8ba8\u8bba\uff0c\u53ef\u4ee5\u770b\u8fd9\u91cc\u3002

    "},{"location":"anime/ngnl/#tv","title":"TV\u52a8\u753b","text":""},{"location":"anime/ngnl/#_2","title":"\u5267\u573a\u7248","text":""},{"location":"anime/ngnl/#_3","title":"\u5c0f\u8bf4","text":""},{"location":"blog/","title":"Blog","text":"

    BroadcastChannel\u80fd\u5c06Telegram\u516c\u5171\u9891\u9053\u8f6c\u4e3a\u7b80\u6613\u535a\u5ba2

    \u6e90\uff1ahttps://treehole.lvista.site/

    "},{"location":"blog/2025/01/08/site_build/","title":"\u81ea\u5efa\u4e3b\u9875\uff1a\u59cb","text":"

    \u4ece\u840c\u751f\u4e00\u4e2a\u5efa\u7ad9\u7684\u60f3\u6cd5\uff0c\u5230\u6210\u529f\u6784\u5efa\u4e00\u4e2a\u57fa\u672c\u6846\u67b6\u7684\u8fc7\u7a0b\u3002\u5177\u4f53\u505a\u6cd5\u5b98\u7f51\u7ed9\u7684\u5f88\u8be6\u7ec6\uff0c\u8fd9\u91cc\u53ea\u4f1a\u6307\u51fa\u4e00\u4e9b\u7279\u522b\u7684\u5730\u65b9

    \u53c2\u8003

    • \u611f\u8c22\uff1a\u03a3\u5f20\u6768\u6fc0\u53d1\u4e86\u6211\u5efa\u7ad9\u7684\u60f3\u6cd5\u3002
    • \u4e3b\u8981\u9075\u5faa\uff1aMaterial for MkDocs-getting-started
    \u4e3a\u4f55\u8981\u8d39\u65f6\u8d39\u529b\u5efa\u4e00\u4e2a\u7f51\u7ad9\uff1f

    \u4e0d\u4e3a\u522b\u7684\uff0c\u5c31\u662f\u201c\u4ecb\u7ecd\u81ea\u6211\u201d\u3002\u5982\u679c\u662f\u4e3a\u4e86\u5206\u4eab\u4e00\u4e9b\u4e1c\u897f\uff0c\u5927\u53ef\u53bbCSDN(1)\u4e4b\u7c7b\u7684\u5730\u65b9\uff0c \u4e0d\u5fc5\u5728\u4e2a\u4eba\u4e3b\u9875\u4e0a\u5206\u4eab\u7ecf\u9a8c\uff0c\u8fd9\u6709\u6096\u4e92\u8054\u7f51\u7684\u201c\u5206\u4eab\u201d\u7cbe\u795e\u3002

    1. \u53ef\u4ee5\u524d\u5f80\u6211\u7684CSDN\u770b\u770b\u5206\u4eab\u8fc7\u7684\u6587\u7ae0

    Notion\u662f\u4e00\u4e2a\u5f88\u597d\u7684\u7b14\u8bb0\u8bb0\u5f55\u5e73\u53f0\uff0c\u529f\u80fd\u5f88\u5f3a\u5927\uff0c\u6211\u628a\u5f88\u591a\u8bb0\u5f55\u7684\u4e1c\u897f\u90fd\u653e\u5728\u8fd9\u91cc\uff0c \u4f46\u662f\u5e76\u4e0d\u80fd\u5b8c\u5168\u7684\u81ea\u5b9a\u4e49\uff0c\u5e76\u4e14\u66f4\u591a\u662f\u201c\u79c1\u6709\u201d\u7684\uff0c\u6240\u4ee5\u60f3\u5c06\u5176\u79fb\u690d\u5230\u4e2a\u4eba\u7f51\u7ad9\u4e0a\u3002

    \u5bf9\u4e8e\u6211\u8fd9\u6837\u559c\u6b22\u6df7\u8ff9\u5728\u4e92\u8054\u7f51\uff0c\u89c6\u7535\u5b50\u8bbe\u5907\u4e3a\u201c\u6700\u4f73\u73a9\u5177\u201d\u7684\u4eba\u6765\u8bf4\uff0c \u4e2a\u4eba\u4e3b\u9875\u5c31\u662f\u6700\u597d\u7684\u540d\u7247\u3002\u901a\u8fc7\u8fd9\u6837\u7684\u201c\u540d\u7247\u201d\u6211\u7ed3\u5b9e\u4e86\u201c\u4e16\u53e6\u6211\u201d\u03a3\u5f20\u6768

    ","tags":["\u5efa\u7ad9","HTML","Material for MkDocs","Blog","\u4e2a\u4eba\u7f51\u7ad9"]},{"location":"blog/2025/01/08/site_build/#start-your-first-homepage","title":"Start your first homepage","text":"

    \u53ea\u9700\u8981\u9075\u4eceGetting-started \u6309\u7167\u987a\u5e8f\u4e00\u6b65\u6b65\u505a\u4e0b\u53bb\u5373\u53ef\u642d\u5efa\u5b8c\u6210\u7b2c\u4e00\u4e2aHP\uff0c\u4e4b\u540e\u5728GitHub Pages\u4e0a\u90e8\u7f72\u5373\u53ef\u3002\u52a8\u624b\u5b8c\u6210\u81f3Getting-started\u4e2d\u7684Publishing your site \u7ae0\u8282\u5373\u53ef\u5b8c\u6210\u57fa\u672c\u90e8\u7f72\u3002

    \u5feb\u901f\u5b9e\u8df5

    \u4ee5\u4e0b\u4ec5\u4e3a\u201c\u6025\u6025\u56fd\u738b\u201d\u6216\u8005\u9700\u8981\u5c3d\u5feb\u642d\u5efa\u7684\u540c\u5b66\u7684\u53c2\u8003\uff0c\u5bf9\u4e8e\u5927\u591a\u6570\u4eba\uff0c \u4f9d\u7136\u5efa\u8bae\u6309\u7167Getting-started\u63d0\u4f9b\u7684\u6559\u7a0b\u8fdb\u884c.

    • pip install mkdocs-material
    • \u4e0b\u8f7d\u5b98\u65b9\u63d0\u4f9b\u7684\u6807\u51c6\u4f8b\u5b50 Blog
    • mkdocs.yml\u4fee\u6539\u4ee5\u4e0b\u90e8\u5206(1):
      plugins:\n    - search\n    - blog:\n        blog_toc: true\n        archive_date_format: MMMM yyyy\n        categories_allowed:\n            - Holidays\n            - News\n        authors_profiles: true\n        pagination_per_page: 5\n        archive_pagination_per_page: 10\n        categories_pagination_per_page: 10\n    - tags\n
    • \u8fd0\u884cmkdocs serve\u5373\u53ef\u5728\u672c\u5730\u6d4f\u89c8\u6548\u679c
    • \u8fd0\u884cmkdocs build\u521b\u5efa\u5305\u542bindex.html\u7684\u7f51\u9875\u6587\u4ef6
    • GitHub Pages\u5feb\u901f\u90e8\u7f72\uff0c\u63a8\u9001\u5230Github
    • \u8bbf\u95eeuser.github.io\u5373\u53ef\u770b\u5230\u7ed3\u679c

    \u66f4\u559c\u6b22\u6211\u7684\uff1f

    \u5982\u679c\u60a8\u66f4\u559c\u6b22\u6211\u7684\uff0c\u53ef\u4ee5\u770b\u770b\u8fd9\u7bc7

    1. \u56e0\u4e3a\u8be5\u4f8b\u5b50\u53ea\u7ed9Insiders Edition\uff0c\u4fd7\u79f0\u9ad8\u7ea7\u7528\u6237\u4f7f\u7528 \u9700\u8981\u53bb\u6389\u90e8\u5206\u529f\u80fd\u624d\u80fd\u8fd0\u884c\u3002
    \u4f60\u53ef\u80fd\u9700\u8981\u77e5\u9053\u7684

    GitHub Pages\u662f\u901a\u8fc7\u81ea\u52a8\u5bfb\u627e\u5f53\u524dBranch\u4e0a\u7684\u7684index.html\u6765\u53d1\u5e03\u7f51\u9875\u7684\uff0c \u6240\u4ee5\u9700\u8981\u6ce8\u610frepo\u4e2d\u7684setting\u2192Pages\u2192Build and deployment\u4e0b\u7684Source\u8bbe\u7f6e\u662f\u5426\u662fDeploy from a branch\uff0c Branch\u662f\u5426\u8bbe\u7f6e\u4e3a\u7f16\u8bd1\u540e\u7684\u6587\u4ef6\u5206\u652f\uff0c\u8fd9\u4e2a\u8bbe\u7f6e\u5728\u540e\u9762\u4e5f\u4f1a\u63d0\u5230

    ","tags":["\u5efa\u7ad9","HTML","Material for MkDocs","Blog","\u4e2a\u4eba\u7f51\u7ad9"]},{"location":"blog/2025/01/08/site_build/#github-actions-workflow","title":"\u4f7f\u7528GitHub Actions workflow","text":"

    \u4e3a\u4f55\u8981\u4f7f\u7528 GAW

    GitHub Actions is a continuous integration and continuous delivery (CI/CD) platform that allows you to automate your build, test, and deployment pipeline. You can create workflows that build and test every pull request to your repository, or deploy merged pull requests to production.

    from Publishing your site - Material for MkDocs

    \u539f\u7406

    \u4f7f\u7528 GAW \u6700\u5927\u7684\u597d\u5904\u5728\u4e8e\u5c06\u6e90\u6587\u4ef6\u548c\u7f16\u8bd1\u540e\u7684\u6587\u4ef6\u5e93\u5206\u5f00\u3002\u5e76\u4e14\u7f16\u8bd1\u5728 GAW \u4e0a\u5b8c\u6210\uff0c\u5bf9\u672c\u5730\u7f16\u8f91\u73af\u5883\u8981\u6c42\u964d\u4f4e\u4e86\u5f88\u591a\uff0c\u53ef\u4ee5\u5feb\u901f\u53d1\u5e03\u6587\u7ae0\u3002

    \u539f\u7406\u5c31\u662f\u5c06\u7f16\u8bd1\u524d\u7684\u6587\u4ef6\u63a8\u9001\u5230Github\uff0cGithub\u4f1a\u6839\u636e.github\\workflows\\ci.yml\u8fd0\u884c\u547d\u4ee4\uff0c \u5728\u8fd9\u91cc\u5c31\u662f\u5c06\u6587\u4ef6\u4e91\u7f16\u8bd1\u81f3gh-pages\u5206\u652f\uff0c\u7136\u540eGithub Page\u4f1a\u5c55\u793agh-pages\u5206\u652f\u7684\u7f51\u9875\u4ed3\u5e93\uff0c \u800c\u6e90\u6587\u4ef6\u5219\u5728main\u5206\u652f\u4e2d\u3002

    1. \u6839\u636ePublishing your site - Material for MkDocs \u5b8c\u6210ci.yml\u7684\u521b\u5efa
    2. \u5c06\u5e26\u6709mkdocs.yml\u7684\u6e90\u6587\u4ef6\u5e93\u63a8\u9001\u81f3main\u5206\u652f
    3. \u8f6cGithub\u4ed3\u5e93\u9875\u9762\uff0c\u5728Setting->Pages->Build and deployment\u4e2d\uff0c\u5c06Branch\u8bbe\u5b9a\u4e3agh-pages
    ERROR - Config value 'plugins': The \"git-revision-date-localized\" plugin is not installed

    \u5f53\u4f7f\u7528git-revision-date-localized \u6a21\u5757\u540e\uff0c\u5728 GAW \u8fd0\u884c\u65f6\u4f1a\u51fa\u73b0\u8fd9\u6837\u7684\u9519\u8bef\u3002\u8bf7\u4fee\u6539.github/workflows/ci.yml\u5185\u5bb9\u5982\u4e0b\uff0c\u8ba9 GAW \u4e0b\u8f7d\u8be5\u6a21\u5757\uff1a

    name: ci\non:\npush:\n    branches:\n    - main\npermissions:\ncontents: write\njobs:\ndeploy:\n    runs-on: ubuntu-latest\n    steps:\n    - uses: actions/checkout@v4\n    - name: Configure Git Credentials\n        run: |\n        git config user.name github-actions[bot]\n        git config user.email 41898282+github-actions[bot]@users.noreply.github.com\n    - uses: actions/setup-python@v5\n        with:\n        python-version: 3.x\n    - run: echo \"cache_id=$(date --utc '+%V')\" >> $GITHUB_ENV\n    - uses: actions/cache@v4\n        with:\n        fetch-depth: 0\n        key: mkdocs-material-${{ env.cache_id }}\n        path: .cache\n        restore-keys: |\n            mkdocs-material-\n    - run: pip install mkdocs-material\n    - run: pip install mkdocs-git-revision-date-localized-plugin\n    - run: mkdocs gh-deploy --force\n

    ","tags":["\u5efa\u7ad9","HTML","Material for MkDocs","Blog","\u4e2a\u4eba\u7f51\u7ad9"]},{"location":"blog/2025/01/08/site_build/#_2","title":"\u56fd\u5185\u8bbf\u95ee","text":"

    Note

    \u8bf7\u786e\u8ba4\u5df2\u5728GitHub Pages\u4e0a\u90e8\u7f72\u597d\u7f51\u7ad9\u5e76\u53ef\u4ee5\u8bbf\u95ee\u3002

    \u56fd\u5185\u8bbf\u95eeGitHub Pages\u63d0\u4f9b\u7684username.github.io\u4f1a\u51fa\u73b0\u52a0\u8f7d\u6162\u7684\u60c5\u51b5\uff0cvercel \u4e4b\u7c7b\u7684\u5e73\u53f0\u4e5f\u65e0\u6cd5\u5728\u56fd\u5185\u8fdb\u884c\u8bbf\u95ee\uff0c\u6240\u4ee5\u5c31\u9700\u8981\u53e6\u5916\u4e00\u79cd\u65b9\u6cd5\u6765\u8fdb\u884c\u4ee3\u7406\u8bbf\u95ee\u3002\u8fd9\u91cc\u6211\u4eec\u4f7f\u7528\u57df\u540d+DNS\u89e3\u6790\u7684\u65b9\u6cd5\u3002

    1. \u9996\u5148\u8d2d\u4e70\u57df\u540d\uff0c\u817e\u8baf\u4e91\uff0c\u963f\u91cc\u4e91\u5565\u7684\u90fd\u884c\u3002\u6bd4\u5982\u6211\u8fd9\u91cc\u4f7f\u7528\u7684\u817e\u8baf\u4e91\uff0c \u9700\u8981\u5b9e\u540d\u6ce8\u518c\uff0c\u5ba1\u6838\u901a\u8fc7\u5f88\u5feb\uff0c\u8d2d\u4e70\u4e861\u5e74\u7684.site\u57df\u540d\uff1b
    2. \u4e4b\u540e\u5e26\u7740\u6ce8\u518c\u53f7\u7684\u57df\u540d\uff0c\u6bd4\u5982\u6211\u7684lvista.site\uff0c\u627e\u5230\u4e91\u89e3\u6790DNS\u670d\u52a1\uff0c\u9009\u62e9\u65b0\u624b\u5feb\u901f\u89e3\u6790
    3. \u9009\u62e9\u5c06\u7f51\u7ad9\u57df\u540d\u89e3\u6790\u5230\u53e6\u5916\u7684\u76ee\u6807\u540d\uff0c\u8f93\u5165username.github.io\uff0c\u5c31\u80fd\u5f00\u542f\u514d\u8d39\u5957\u9910\u7248\u7684\u4e91\u89e3\u6790DNS\u670d\u52a1
    4. \u8f6cGithub\u4ed3\u5e93\uff0c\u5728Setting->Pages-> Chustom domain\u4e2d\u8f93\u5165\u57df\u540d\uff0c\u4fdd\u5b58
    ","tags":["\u5efa\u7ad9","HTML","Material for MkDocs","Blog","\u4e2a\u4eba\u7f51\u7ad9"]},{"location":"blog/2025/01/08/site_build/#end","title":"END","text":"

    \u5230\u6b64\u4e3a\u6b62\uff0c\u4f60\u5df2\u7ecf\u6210\u529f\u5b8c\u6210\u4ee5\u4e0b\u529f\u80fd\uff1a

    • \u6784\u5efa\u4e00\u4e2a\u7f51\u7ad9
    • \u5c06\u5176\u90e8\u7f72\u5728\u670d\u52a1\u5668\u4e0a\uff08GitPage\u6258\u7ba1\u670d\u52a1\uff09
    • \u4e2d\u56fd\u5927\u9646\u4e5f\u80fd\u8bbf\u95ee

    \u606d\u559c\u4f60\uff0c\u4f60\u53c8\u8fdb\u6b65\u4e86\uff01\uff01

    ","tags":["\u5efa\u7ad9","HTML","Material for MkDocs","Blog","\u4e2a\u4eba\u7f51\u7ad9"]},{"location":"blog/2025/01/10/build_sim/","title":"\u7ed9\u6211\u4e5f\u6574\u4e00\u4e2a\uff01","text":"

    \u6574\u4e00\u4e2a\u4e0e\u672c\u7ad9\u7c7b\u4f3c\u7684\u7f51\u7ad9

    \u9996\u5148\u8c22\u8c22\u9891\u5e55\u524d\u7684\u4f60\u5bf9\u6211\u7684\u8ba4\u540c\uff0c\u8bdd\u4e0d\u591a\u8bf4\uff0c\u5f00\u6574\uff01

    ","tags":["\u5efa\u7ad9","HTML","Material for MkDocs","Blog","\u4e2a\u4eba\u7f51\u7ad9"]},{"location":"blog/2025/01/10/build_sim/#_2","title":"\u51c6\u5907","text":"
    • \u4ece\u6211\u7684release/latest\u4e2d\u4e0b\u8f7d\u6700\u65b0\u7248
    • \u4e0b\u8f7d\u5305:
    pip install mkdocs-materialpip install mkdocs-rss-pluginpip install mkdocs-git-revision-date-localized-plugin

    \u4e4b\u540e\u8fd0\u884c\u4ee5\u4e0b\u547d\u4ee4\u5373\u53ef\u9884\u89c8

    mkdocs server

    Tip

    mkdocs server\u8fd0\u884c\u540e\u4e0d\u4f1a\u81ea\u52a8\u4e2d\u6b62\u8fdb\u7a0b\uff0c\u4f7f\u7528Ctrl+C\u5373\u53ef\u5f3a\u884c\u7ec8\u6b62\u8fdb\u7a0b\u3002 \u8fdb\u7a0b\u5f00\u59cb\u540e\uff0c \u5927\u90e8\u5206 \u7684\u7f51\u9875\u7684\u4fee\u6539\u4f1a\u540c\u6b65\u8ddf\u65b0\u5230\u7f51\u9875\uff0c\u4e0d\u9700\u8981\u91cd\u65b0\u542f\u52a8\u3002

    ","tags":["\u5efa\u7ad9","HTML","Material for MkDocs","Blog","\u4e2a\u4eba\u7f51\u7ad9"]},{"location":"blog/2025/01/10/build_sim/#_3","title":"\u90e8\u7f72","text":"
    1. \u521b\u5efa\u4e00\u4e2aGithub\u8d26\u53f7
    2. \u6309\u7167GitHub Pages\u521b\u5efa\u4ed3\u5e93
    3. \u6309\u7167\u4f7f\u7528GitHub Actions workflow \u63a8\u9001\u4ed3\u5e93
    4. \u6309\u7167\u56fd\u5185\u8bbf\u95ee\u89e3\u6790\u7f51\u9875
    ","tags":["\u5efa\u7ad9","HTML","Material for MkDocs","Blog","\u4e2a\u4eba\u7f51\u7ad9"]},{"location":"blog/2025/01/10/build_sim/#_4","title":"\u81ea\u5b9a\u4e49","text":"

    \u5927\u90e8\u5206\u8bbe\u7f6e\u53ef\u53c2\u8003Customization \u8fd9\u91cc\u5bf9\u6211\u52a0\u5165\u7684\u8fdb\u884c\u8bf4\u660e

    ","tags":["\u5efa\u7ad9","HTML","Material for MkDocs","Blog","\u4e2a\u4eba\u7f51\u7ad9"]},{"location":"blog/2025/01/10/build_sim/#_5","title":"\u9996\u9875\u5934\u50cf","text":"

    \u53ef\u4fee\u6539docs/index.md\u4e2d\u7684\u56fe\u7247\u548c\u6587\u5b57

    docs/index.mddocs/css/custom.css
    <div class=\"flip-container\">\n<div class=\"image-container\">\n    <!-- docs/assets/images/logo_noBG_circle.png -->\n    <img src=\"https://s2.loli.net/2025/01/09/ve1piNRt6M5ycDQ.png\" alt=\"Front Image\">\n    <a href=\"/template/\" >\n        <!-- docs/assets/images/self_shoot.png -->\n        <img src=\"https://s2.loli.net/2025/01/09/wOzTR9Kyfq2jMHo.png\" alt=\"Back Image\">\n    </a>\n</div>\n<div class=\"hover-block\">\n    \u70b9\u6211\u770b\u770b!\n</div>\n</div>\n
    .flip-container {\n    position: relative;\n    width: 300px;\n    height: 300px;\n    margin: 10px auto;\n    display: flex;\n    align-items: flex-start;\n    /* \u5bf9\u9f50\u9876\u90e8 */\n    justify-content: flex-end;\n    /* \u5c06\u6587\u5b57\u653e\u7f6e\u53f3\u4e0a\u89d2 */\n}\n\n/*more...*/\n
    ","tags":["\u5efa\u7ad9","HTML","Material for MkDocs","Blog","\u4e2a\u4eba\u7f51\u7ad9"]},{"location":"blog/2025/01/10/build_sim/#_6","title":"\u53cb\u60c5\u94fe\u63a5","text":"

    \u53ef\u4fee\u6539overrides/main.html\u4e2d\u7684\u56fe\u7247\u548c\u94fe\u63a5

    overrides/main.htmlcss/float_cards.cssmkdocs.yml
    {% block site_nav %}\n<!-- Navigation -->\n{% if nav %}\n{% if page.meta and page.meta.hide %}\n{% set hidden = \"hidden\" if \"navigation\" in page.meta.hide %}\n{% endif %}\n<div class=\"md-sidebar md-sidebar--primary\" data-md-component=\"sidebar\" data-md-type=\"navigation\" {{ hidden }}>\n    <div class=\"md-sidebar__scrollwrap\">\n        <div class=\"md-sidebar__inner\">\n            {% include \"partials/nav.html\" %}\n        </div>\n    </div>\n</div>\n\n{% endif %}\n\n<!-- Table of contents -->\n{% if \"toc.integrate\" not in features %}\n{% if page.meta and page.meta.hide %}\n{% set hidden = \"hidden\" if \"toc\" in page.meta.hide %}\n{% endif %}\n<div class=\"md-sidebar md-sidebar--secondary\" data-md-component=\"sidebar\" data-md-type=\"toc\" {{ hidden }}>\n    <div class=\"md-sidebar__scrollwrap\">\n        <div class=\"md-sidebar__inner\">\n            {% include \"partials/toc.html\" %}\n        </div>\n        <div class=\"card-container\">\n            <h3>\u53cb\u60c5\u94fe\u63a5</h3>\n            <div class=\"card\">\n                <div class=\"img-container\">\n                    <a href=\"https://yangzhang.site/\" target=\"_blank\">\n                        <img src=\"https://yangzhang.site/assets/images/summation.png\"\n                            style=\"width: 70%; height: 70%; object-fit: contain;\">\n                    </a>\n                </div>\n                <div class=\"content\">\n                    <a href=\"https://yangzhang.site/\" target=\"_blank\">\n                        <h3>yangzhang's Site</h3>\n                    </a>\n                </div>\n            </div>\n        </div>\n\n    </div>\n</div>\n{% endif %}\n{% endblock %}\n
    .card-container {\nmargin: 50px 0 0 0;\ndisplay: flex;\nflex-flow: row wrap;\nflex-wrap: wrap;\nalign-content: flex-start;\ntext-align: center;\n}\n/*...see more */\n
    extra_css:\n    - css/float_cards.css\n
    ","tags":["\u5efa\u7ad9","HTML","Material for MkDocs","Blog","\u4e2a\u4eba\u7f51\u7ad9"]},{"location":"blog/2025/01/14/jp_home/","title":"Template","text":"

    \u8fd9\u662f\u4e00\u4e2a\u6807\u51c6\u6a21\u677f

    this is a stander template

    ","tags":["\u7559\u5b66","\u65e5\u672c"]},{"location":"blog/2025/01/19/np_bc/","title":"Numpy\u4e2d\u7684\u5e7f\u64ad\u673a\u5236","text":"

    \u4f7f\u7528Numpy\u8fdb\u884c\u673a\u5668\u5b66\u4e60\u65f6\uff0c\u5411\u91cf\u4e4b\u95f4\u7684\u8fd0\u7b97\u6d89\u53ca\u5230\u5230\u5e7f\u64ad\u673a\u5236(Broadcast)\uff0c \u8be6\u7ec6\u7684\u5e7f\u64ad\u673a\u5236\u662f\u5f88\u957f\u7684\uff0c\u4f46\u662f\u53ef\u901a\u8fc7\u4e00\u4e2a\u7b80\u5355\u7684\u4f8b\u5b50\u5c31\u80fd\u7aa5\u89c1\u5176\u4e00\u4e8c\u3002

    ","tags":["Python","Numpy","\u5e7f\u64ad\u673a\u5236","\u673a\u5668\u5b66\u4e60"]},{"location":"blog/2025/01/19/np_bc/#_1","title":"\u80cc\u666f","text":"

    \u5728\u5b66\u4e60\u673a\u5668\u5b66\u4e60\u65f6\uff0c\u5c1d\u8bd5\u4f7f\u7528Numpy\u6784\u5efa\u4e00\u4e2a\u7b80\u5355\u7684\u591a\u8f93\u5165\u7279\u5f81\u7684\u5b9e\u9a8c\u6027\u4ee3\u7801\u65f6\uff0c \u53d1\u73b0\u6700\u540e\u7684\u7ed3\u679c\u51fa\u73b0\u4e86\u7ef4\u5ea6\u4e0a\u5347\u95ee\u9898\uff0c\u5982\u4e0b\uff0c\u5728\u8fd9\u91cc\u4f7f\u7528\u4e86\uff1a

    • \u6a21\u578b\uff1a\u7b80\u5355\u7ebf\u6027\u6a21\u578b
    • \u8f93\u5165\u548c\u8f93\u51fa\uff1a5\u7ef4\u5ea6\u7684\u8f93\u5165\u548c1\u7ef4\u5ea6\u7684\u8f93\u51fa
    • \u635f\u5931\u51fd\u6570\uff1a\u5e73\u65b9\u635f\u5931\u51fd\u6570
    • \u4f18\u5316\u7b97\u6cd5\uff1a\u968f\u673a\u68af\u5ea6\u4e0b\u964d\u6cd5
    \u751f\u6210\u6570\u636e\u70b9\u7ebf\u6027\u6a21\u578b\uff0c\u635f\u5931\u51fd\u6570\u548c\u68af\u5ea6\u8bad\u7ec3
    import numpy as np\n\nn = 500\nm = 5\nw = np.array([[3,2,6,1,7]]).T\nb = 8\nnp.random.seed(42)\nx = np.random.rand(m, n)\nx_aug = np.pad(x, ((0, 1), (0, 0)), 'constant', constant_values=1)\nw_aug = np.pad(w, ((0, 1), (0, 0)), 'constant', constant_values=b)\ny = np.dot(w_aug.T,x_aug)\n\n# \u6dfb\u52a0\u9ad8\u65af\u566a\u58f0 \nmu, sigma = 0, 1 # \u5747\u503c\u548c\u6807\u51c6\u5dee \nnoise = np.random.normal(mu, sigma, y.shape) \ny_noisy = y + noise\n\nfrom sklearn.model_selection import train_test_split\n\n# \u8f6c\u7f6e x_aug \u548c y_noisy \u4ee5\u8fdb\u884c\u6253\u4e71\u548c\u5206\u5272\nx_aug = x_aug.T\ny_noisy = y_noisy.T\n\n# \u5c06\u6570\u636e\u6253\u4e71\u5e76\u5206\u6210\u8bad\u7ec3\u96c6\u548c\u6d4b\u8bd5\u96c6\nx_train, x_test, y_train, y_test = train_test_split(x_aug, y_noisy, test_size=0.2, random_state=42)\n\n# \u8f93\u51fa\u7ed3\u679c\nprint(\"\u8bad\u7ec3\u96c6 X \u7684\u5f62\u72b6:\", x_train[:,:-1].shape)\nprint(\"\u6d4b\u8bd5\u96c6 X \u7684\u5f62\u72b6:\", x_test.shape)\nprint(\"\u8bad\u7ec3\u96c6 Y \u7684\u5f62\u72b6:\", y_train.shape)\nprint(\"\u6d4b\u8bd5\u96c6 Y \u7684\u5f62\u72b6:\", y_test.shape)\n
    # \u7ebf\u6027\u6a21\u578b\u51fd\u6570\ndef line_fun(x, w, b):\n    return np.dot(w.T, x)+b\n\n\n# \u8bbe\u5b9a\u4e00\u4e2a\u5e73\u65b9\u635f\u5931\u51fd\u6570\u7684\u68af\u5ea6\u4f18\u5316\ndef gradient_optimization(x, y, w, b):\n    y_pre = line_fun(x, w, b)\n    grad_w = -(y - y_pre) * x\n    grad_b = -(y - y_pre)\n    return grad_w, grad_b\n# \u635f\u5931\u51fd\u6570 \ndef loss_function(x, y, k, b): \n    y_pre = line_fun(x, k, b) \n    return np.mean((y - y_pre) ** 2)\n
    # \u8bbe\u5b9a\u5b66\u4e60\u53d8\u91cfw\u548cb\u7684\u521d\u59cb\u503c\nw = np.ones((5, 1))  # \u521d\u59cb\u6743\u91cd\u5411\u91cf\uff0c\u7ef4\u5ea6\u4e3a5*1\nb = 0.0\nlearning_rate = 0.001\ndecay_rate = 0.5\n\ntolerance = 1e-6\nmax_epochs = 1000\nmin_improvement = 1e-6\npatience = 10\n\n# \u8bad\u7ec3\u8fc7\u7a0b\nprevious_loss = float('inf')\nimprovement_streak = 0\n\n# \u8bad\u7ec3\u96c6\u5faa\u73af\nfor i in range(max_epochs):\n    learning_rate = 0.01 / (1 + decay_rate * i)\n    current_loss = 0\n    for n in range(x_train.shape[0]):\n        x_n = x_train[n, :-1]  # \u8f93\u5165\u7279\u5f81\u5411\u91cf\n        y_n = y_train[n]  # \u76ee\u6807\u503c\n        grad_w, grad_b = gradient_optimization(x_n, y_n, w, b)\n        w = w - learning_rate * grad_w\n        b = b - learning_rate * grad_b\n        current_loss += loss_function(x_n, y_n, w, b)\n\n    current_loss /= x_train.shape[0]\n    if abs(previous_loss - current_loss) < min_improvement:\n        improvement_streak += 1\n    else:\n        improvement_streak = 0\n\n    if improvement_streak >= patience:\n        print(f\"Training stopped after {i} epochs due to no significant improvement.\")\n        break\n\n    previous_loss = current_loss\n\nprint(f\"Final values: w={w.T},\\n b={b}, loss={previous_loss}\")\n

    output:\nFinal values: w=[[3.02622292 3.02622292 3.02622292 3.02622292 3.02622292]\n [2.44689788 2.44689788 2.44689788 2.44689788 2.44689788]\n [5.7501989  5.7501989  5.7501989  5.7501989  5.7501989 ]\n [1.51654221 1.51654221 1.51654221 1.51654221 1.51654221]\n [6.47852751 6.47852751 6.47852751 6.47852751 6.47852751]], \n b=[ 6.95328209  8.38911179  0.17837436 10.70002468 -1.62483275], loss=4.85157491175411\n
    \u53ef\u4ee5\u53d1\u73b0\uff0cw\u548cb\u5747\u88ab\u5e7f\u64ad\u673a\u5236\u6269\u5145\u4e3a(5,5)(1,5)\u7684\u77e9\u9635\u3002\u5404\u4f4d\u53ef\u4ee5\u601d\u8003\u4e00\u4e0b\u4e3a\u4ec0\u4e48\u3002

    ","tags":["Python","Numpy","\u5e7f\u64ad\u673a\u5236","\u673a\u5668\u5b66\u4e60"]},{"location":"blog/2025/01/19/np_bc/#_2","title":"\u95ee\u9898\u6240\u5728","text":"

    \u7ecf\u8fc7\u7e41\u7410\u7684\u95ee\u9898\u6392\u67e5\uff0c\u505a\u4e86\u4ee5\u4e0b\u6d4b\u8bd5\u4ee3\u7801\uff1a

    Test1.pyTest2.py
    x = np.ones((5,)) # \u76f8\u5f53\u4e8ex_n = x_train[n, :-1] (1)\nw = np.ones((5,1))# \nb = 1.0\ny = 1\ny_pre = np.dot(w.T, x)+b\nw =  w + (y - y_pre) * x\nprint(f\"shape of w: {w.shape}\")\n\ny_pre = np.dot(w.T, x)+b\nprint(f\"shape of y_pre: {y_pre.shape}\")\n
    1. \u4ece(100, 6)\u7684\u589e\u5e7f\u5411\u91cf\\(\\hat{x}\\)\u4e2d\u53d6\u4e00\u884c\u76841~5\u4e2a\u5143\u7d20\uff08\u6700\u540e\u4e00\u4e2a\u662f\u5e38\u6570\u9879\uff09
    output: \nshape of w: (5, 5)\nshape of y_pre: (5,)\n

    x = np.ones((5,1))\nw = np.ones((5,1))\nb = 1.0\ny = 1\ny_pre = np.dot(w.T, x)+b\nw =  w + (y - y_pre) * x\nprint(f\"shape of w: {w.shape}\")\n\ny_pre = np.dot(w.T, x)+b\nprint(f\"shape of y_pre: {y_pre.shape}\")\n
    output: \nshape of w: (5, 1)\nshape of y_pre: (1, 1)\n

    \u5de6\u8fb9\u662fx = np.ones((5,))\uff0c\u76f8\u5f53\u4e8e\u4e00\u4e2a5\u4e2a\u5e38\u6570\u3002 \u53f3\u8fb9\u662fx = np.ones((5,1))\uff0c\u662f\u4e00\u4e2a\u884c\u5411\u91cf

    \u6ce8\u610fw = w + (y - y_pre) * x\u8fd9\u4e00\u6b65\u7684\u8fd0\u7b97\uff1a

    Test1.pyTest2.py
    • (y - y_pre) * x-->(1,)\u4e58\u4ee5(5,)\uff0c\u5f97\u5230\u7684shape\u4e3a(5,)
    • w + (y - y_pre) * x-->(5,1)\u52a0(5,)\uff0c\u5f97\u5230\u7684shape\u4e3a(5,5)
    • (y - y_pre) * x-->(1,)\u4e58\u4ee5(5,1)\uff0c\u5f97\u5230\u7684shape\u4e3a(5,1)
    • w + (y - y_pre) * x-->(5,1)\u52a0(5,1)\uff0c\u5f97\u5230\u7684shape\u4e3a(5,1)
    ","tags":["Python","Numpy","\u5e7f\u64ad\u673a\u5236","\u673a\u5668\u5b66\u4e60"]},{"location":"blog/2025/01/19/np_bc/#_3","title":"\u603b\u7ed3","text":"

    \u5728Numpy\u4e2d\uff0c\u5c24\u5176\u9700\u8981\u6ce8\u610f(5,)\u8fd9\u6837shape\u7684\u53d8\u91cf\uff0c\u5b83\u4f1a\u88ab\u5f53\u4f5c5\u4e2a\u5e38\u91cf\uff0c\u53735\u4e2ashape\u4e3a(1,1)\u7684\u5411\u91cf\uff0c \u4e0eshape\u4e3a(5,1)\u7684\u5411\u91cf\u4f5c\u52a0\u7b97\u4f1a\u5f97\u5230shape\u4e3a(5,5)\u7684\u5411\u91cf\u3002

    \u8fd9\u4e5f\u5c31\u662f\u4e3a\u4ec0\u4e48\u5728\u4f17\u591a\u5173\u4e8eNumpy\u7684\u4e66\u7c4d\u548c\u6559\u7a0b\u4e2d\uff0c\u4f18\u5148\u4f7f\u7528\u884c\u5411\u91cf\u7684\u8868\u793a\u65b9\u5f0f\u7684\u539f\u56e0\u3002

    \u8bd5\u4e00\u8bd5

    \u8bd5\u8bd5\u4e0b\u9762\u4ee3\u7801\u770b\u770b\u7ed3\u679c\uff0c\u53d1\u73b0\u4e86\u4ec0\u4e48\uff1f

    x = np.ones((5,)) # \u8f93\u5165\u7279\u5f81\u5411\u91cf\nw = np.ones((5,1))\nprint(f\"shape of the result: {(x - w)}\")\nprint(f\"shape of the result: {(x * w)}\")\nprint(f\"shape of the result: {np.subtract(x, w)}\")\nprint(f\"shape of the result: {np.dot(x, w)}\")\n

    ","tags":["Python","Numpy","\u5e7f\u64ad\u673a\u5236","\u673a\u5668\u5b66\u4e60"]},{"location":"blog/2025/01/06/Vedio_processing_by_python/","title":"\u57fa\u4e8ePython\u7684\u89c6\u9891\u5904\u7406","text":"

    \u4e00\u5f00\u59cb\u6211\u662f\u4e3a\u4e86\u505a\u4e00\u4e2aGIF\u56fe\uff0c\u7136\u540e\u8fdb\u884c\u4e00\u4e2a\u538b\u7684\u7f29\uff0c\u7f29\u52308M\u4ee5\u4e0b\uff0c\u4ee5\u4fbf\u53d1\u5230B\u7ad9\u52a8\u6001\u3002\u4f46\u662f\u7f51\u4e0a\u7684\u5728\u7ebf\u538b\u7f29\u5de5\u5177\u90fd\u4e0d\u592a\u597d\u7528\uff0c\u4e8e\u662f\u60f3\u5230\u4e86Python\uff0c\u4e00\u67e5\u679c\u7136\u6709\u8fd9\u6837\u7684\u5a92\u4f53\u5904\u7406\u6a21\u5757\uff1amoviepy

    \u53c2\u8003\u4e86\u4ee5\u4e0b\u6587\u7ae0\uff1a

    • \u4e00\u65e5\u4e00\u6280\uff1a\u4f7f\u7528Python\u5c06\u89c6\u9891\u8f6cGif-\u817e\u8baf\u4e91\u5f00\u53d1\u8005\u793e\u533a-\u817e\u8baf\u4e91
    • User Guide \u2014 MoviePy 1.0.2 documentation
    ","tags":["Python","Vedio","Image"]},{"location":"blog/2025/01/06/Vedio_processing_by_python/#mp4gif","title":"MP4\u8f6cGIF","text":"

    \u9996\u5148\u7528Win11\u81ea\u5e26\u7684\u89c6\u9891\u526a\u8f91\u8f6f\u4ef6\u526a\u4e86\u4e00\u4e0b\uff0c\u7136\u540e\u5bfc\u5165moviepy \uff0c\u6309\u7167\u6559\u7a0b\u7ed9\u7684\u4ee3\u7801\u8fdb\u884c\u6d4b\u8bd5\uff1a

    from moviepy.editor import *\n\nclip = VideoFileClip(r\"C:\\Users\\czc_c\\Downloads\\Liar Dancer.mp4\")\nclip = clip.resize(0.4) # \u538b\u7f29\u5927\u5c0f\nclip.write_gif(\"movie-10f.gif\",fps=15)  #\u8bbe\u7f6e\u4e3a\u6bcf\u79d215\u5e27\n

    `module 'PIL.Image' has no attribute 'ANTIALIAS'

    error\uff1amodule 'PIL.Image' has no attribute 'ANTIALIAS'

    \u67e5\u4e86\u4e4b\u540e\u53d1\u73b0\u662fPillow \u4ece10.0\u7248\u672c\u540e\u5c31\u79fb\u9664\u4e86ANTIALIAS \uff0c\u89e3\u51b3\u65b9\u6848\u5c31\u662f\u5bfc\u51659.5\u7248\u672c\u3002

    AttributeError: module 'PIL.Image' has no attribute 'ANTIALIAS'

    ","tags":["Python","Vedio","Image"]},{"location":"blog/2025/01/16/pavlovian/","title":"\u7406\u5de5\u751f\u4e0d\u4f1a\u68a6\u89c1\u5df4\u752b\u6d1b\u592b\u6761\u4ef6\u53cd\u5c04","text":"

    Learning when not to solve a problem is one of the hardest things I've learnt.

    Quote

    Programmers have a pavlovian engineering response. Pose them a problem and they'll start trying to solve it. Give them a chance to co-engineer along with your presentation by making sure the first bite gets their saliva flowing. Then you can explain the rest of the problem and your brilliant solution knowing that they are there along with you.

    \u4eca\u5929\u770b\u5230\u4e00\u7bc7\u6587\u7ae0\uff0c\u63d0\u5230\u8be5\u5982\u4f55\u5728\u4e00\u6b21\u53d1\u8868\u4e2d\u5438\u5f15\u89c2\u4f17\u7684\u6ce8\u610f\u529b\uff0c\u8bf4\u662f\u8981\u5148\u679c\u540e\u56e0\uff0c\u6216\u8005\u662f\u5012\u53d9\u3002\u6bd4\u5982\u5148\u8bf4\u51fa\u4e00\u4e2a\u82f1\u96c4\u6b63\u5728\u88ab\u903c\u5165\u7edd\u5883\uff0c\u540e\u4ece\u5934\u5f00\u59cb\u63cf\u8ff0\u4e00\u5207\u7684\u5f00\u7aef\u3002

    \u6bd4\u8d77\u8fd9\u4e2a\uff0c\u6211\u66f4\u559c\u6b22\u8fd9\u4e2a\u6587\u7ae0\u91cc\u63d0\u5230\u7684\uff0cpavlovian engineering response\uff0c\u7406\u5de5\u751f\u7684\u5df4\u666e\u6d1b\u592b\u6761\u4ef6\u53cd\u5c04\uff0c\u4ed6\u4eec\u770b\u5230\u4e00\u4e2a\u95ee\u9898\u4f1a\u4e0d\u81ea\u89c9\u5f00\u59cb\u601d\u8003\u89e3\u51b3\u7684\u7684\u65b9\u6cd5\u3002\u8fd9\u53ef\u592a\u611f\u540c\u8eab\u53d7\u4e86\uff0c\u7406\u5de5\u7537\u7684\u7279\u6709\u7684\u76f4\u7537\u8868\u73b0\uff0c\u6536\u5230\u6765\u81ea\u5f02\u6027\u7684\u503e\u8bc9\u9996\u5148\u5e76\u4e0d\u662f\u611f\u540c\u8eab\u53d7\u53bb\u5b89\u6170\uff0c\u800c\u662f\u63d0\u51fa\u89e3\u51b3\u65b9\u6848\u3002

    Quote

    'Programmers have a pavlovian engineering response. Pose them a problem and they'll start trying to solve it.' One of the truest statements I've read in a long while. (Learning when not to solve a problem is one of the hardest things I've learnt.)

    \u8fd9\u662f\u4e0b\u9762\u7684\u7b2c\u4e00\u6761\u8bc4\u8bba\uff0c\u770b\u5b8c\u76f4\u63a5\u6ca1\u7ef7\u4f4f\uff0c\u7279\u522b\u662f\u62ec\u53f7\u91cc\u7684\u5410\u69fd\uff0c\u6bcf\u4e2a\u7406\u5de5\u7537\u770b\u5b8c\u90fd\u4f1a\u4f1a\u5fc3\u4e00\u7b11\u7684\u3002

    ","tags":["\u8da3\u4e8b"]},{"location":"code/","title":"Index","text":"
    • \u795e\u7ecf\u7f51\u7edc\u4e0e\u6df1\u5ea6\u5b66\u4e60
    "},{"location":"code/nndl/","title":"\u795e\u7ecf\u7f51\u7edc\u4e0e\u6df1\u5ea6\u5b66\u4e60","text":"

    \u4e00\u4e9b\u5173\u4e8e\u300a\u795e\u7ecf\u7f51\u7edc\u4e0e\u6df1\u5ea6\u5b66\u4e60\u300b\u7684\u7b14\u8bb0

    • \u4f18\u5316\u7b97\u6cd5
    ","tags":["Neural Network","Deep Learning"]},{"location":"code/nndl/#_2","title":"\u5bf9\u795e\u7ecf\u7f51\u7edc\u4e0e\u6df1\u5ea6\u5b66\u4e60\u7684\u7406\u89e3","text":"

    \u4e66\u4e2d\u5bf9\u6574\u672c\u4e66\u7684\u7ed3\u6784\u5982\u4e0b\uff0c\u5f53\u4e0d\u77e5\u9053\u5728\u5b66\u4ec0\u4e48\u7684\u65f6\u5019\uff0c\u53ef\u4ee5\u770b\u4e00\u4e0b\u8fd9\u4e2a\u56fe

    • \u795e\u7ecf\u7f51\u7edc\u53ea\u662f\u4e00\u4e2a\u6a21\u578b\uff0c\u5c31\u50cf\u51fd\u6570\u4e00\u6837\uff0c\u653e\u8fdb\u4e00\u4e2a\u8f93\u5165\uff0c\u7ed9\u51fa\u4e00\u4e2a\u8f93\u51fa\uff0c \u53ea\u4e0d\u8fc7\u8fd9\u4e2a\u6a21\u578b\u91cc\u5305\u542b\u5f88\u591a\u9996\u5c3e\u76f8\u63a5\u7684\u51fd\u6570\uff0c\u6784\u6210\u50cf\u795e\u7ecf\u4e00\u6837\u7684\u7f51\u7edc\u7ed3\u6784\u3002
    • \u6df1\u5ea6\u5b66\u4e60\u5176\u5b9e\u5c31\u662f\u53cd\u590d\u5b66\u4e60\u7684\u610f\u601d\uff0c\u4ec0\u4e48\u662f\u5b66\u4e60\uff1f\u5b66\u4e60\u5c31\u662f\u8bd5\u9519\uff0c\u901a\u8fc7\u5224\u65ad\uff08\u5206\u7c7b\uff09\u5c06\u4e8b\u7269\u548c\u6982\u5ff5\u5f52\u7c7b\uff0c \u9519\u4e86\u5c31\u4fee\u6b63\uff0c\u4fee\u6b63\u4ec0\u4e48\uff1f\u4fee\u6b63\u6a21\u578b\u4e2d\u7684\u53c2\u6570\u3002\u5c31\u50cf\u6211\u4eec\u505a\u9519\u4e86\uff0c\u5c31\u4f1a\u4fee\u6b63\u5927\u8111\u91cc\u50a8\u5b58\u7684\u8ba4\u77e5\u4e00\u6837\u3002

    \u5bf9\u4e8e\u4eba\u6765\u8bf4\uff0c\u4e0a\u9762\u4e24\u4e2a\u8fc7\u7a0b\u901a\u8fc7\u5927\u8111\u7684\u795e\u7ecf\u7f51\u7edc\u548c\u795e\u7ecf\u7a81\u89e6\u7684\u654f\u611f\u5ea6\u7684\u4fee\u6b63\u6765\u5b9e\u73b0\u3002 \u4f46\u5b9e\u9645\u7684\u751f\u7406\u8fc7\u7a0b\u8981\u66f4\u4e3a\u590d\u6742\u3002

    Note

    \u77e5\u4e4e\u5173\u4e8e\u4eba\u662f\u600e\u4e48\u5b9e\u73b0\u5b66\u4e60\u7684\u8ba8\u8bba\uff0c\u6211\u89c9\u5f97\u5f88\u6709\u610f\u4e49

    ","tags":["Neural Network","Deep Learning"]},{"location":"code/nndl/#_3","title":"\u7b80\u5355\u5f15\u4f8b","text":"

    \u6839\u636e\u673a\u5668\u5b66\u4e60\u7684\u4e09\u4e2a\u57fa\u672c\u8981\u7d20\uff1a

    • \u6a21\u578b\uff1a\u5373\u201c\u5224\u65ad\u201d\u6216\u8005\u201c\u8bd5\u9519\u201d\u7684\u8fc7\u7a0b\uff0c\u5ef6\u7533\u51fa\u53e6\u5916\u4e00\u4e2a\u8bfe\u9898\uff0c\u6a21\u5f0f\u8bc6\u522b\u3002
    • \u5b66\u4e60\u51c6\u5219\uff1a\u201c\u8bd5\u9519\u201d\u65f6\u4e0e\u6b63\u786e\u7b54\u6848\u4e4b\u95f4\u7684\u5dee\u8ddd
    • \u4f18\u5316\u7b97\u6cd5\uff1a\u5982\u4f55\u5bf9\u6a21\u578b\u8fdb\u884c\u4f18\u5316
      graph LR\n  A[\u6a21\u578b] --> B[\u5b66\u4e60\u51c6\u5219];\n  B --> C[\u4f18\u5316\u7b97\u6cd5];\n  C-->A;
      \u6211\u60f3\u4e86\u4e00\u4e2a\u7b80\u5355\u7684\u4f8b\u5b50\uff0c\u5224\u65ad(0.5,3)\u5728\u54ea\u6761\u659c\u7387\u4e3a1\u7684\u7ebf\u4e0a
      graph LR\n    direction LR\n  C[\"\u4e8c\u7ef4\u5750\u6807\u70b9(0.5,3)\"]-->A[\u6a21\u578b\uff1ay=x+5]; \n  A--> B[\"\u8f93\u51fa\uff1a5.5\"];\n

    graph LR\n  D[\"\u4e8c\u7ef4\u5750\u6807\u70b9(0.5,3)\"]-->E[\u6a21\u578b\uff1ay=x+5]; \n  E--> F[\"\u8f93\u51fa\uff1a5.5\"];\n  F--> G[\u5b66\u4e60\u51c6\u5219\uff1a\u4f5c\u5dee,5.5-3=2.5];\n  G--> H[\u4f18\u5316\u7b97\u6cd5\uff1a\u5f25\u8865\u5dee: y=x+5-2.5];\n  H-->E;\n
    graph LR\n  A[\"\u4e8c\u7ef4\u5750\u6807\u70b9(0.5,3)\"]-->B[\u6a21\u578b\uff1ay=x+2.5]; \n  B--> C[\"\u8f93\u51fa\uff1a3\"];\n  C--> G[\u5b66\u4e60\u51c6\u5219\uff1a\u4f5c\u5dee,3-3=0];\n
    \u4e0a\u9762\u4e09\u4e2a\u6b65\u9aa4\u5c55\u793a\u4e09\u4e2a\u57fa\u672c\u8981\u7d20\u7684\u57fa\u672c\u5173\u7cfb\u3002\u4f46\u8fd9\u91cc\u53ea\u7528\u4e86\u4e00\u6b21\u5b66\u4e60\u5c31\u83b7\u5f97\u4e86\u6700\u4f73\u7ed3\u679c\uff0c \u5b9e\u9645\u95ee\u9898\u5f80\u5f80\u662f\u9700\u8981\u591a\u6b21\u5b66\u4e60\u6765\u903c\u8fd1\u771f\u5b9e\u6a21\u578b\u7684\u3002

    ","tags":["Neural Network","Deep Learning"]},{"location":"code/nndl/#_4","title":"\u5177\u4f53\u95ee\u9898\u5177\u4f53\u5206\u6790","text":"","tags":["Neural Network","Deep Learning"]},{"location":"code/opt_alg/","title":"nndl-\u4f18\u5316\u7b97\u6cd5","text":"","tags":["Neural Network","Deep Learning","Algorithm"]},{"location":"code/opt_alg/#_1","title":"\u968f\u673a\u68af\u5ea6\u4e0b\u964d\u6cd5","text":"\u751f\u6210\u6570\u636e\u70b9\u7ebf\u6027\u6a21\u578b\uff0c\u635f\u5931\u51fd\u6570\u548c\u68af\u5ea6\u4f18\u5316\uff1a\u968f\u673a\u68af\u5ea6\u4e0b\u964d\u6cd5
    import numpy as np\nn = 500\nm = 5\nw = np.array([[3,2,6,1,7]]).T\nb = 5\nprint('shape of w:',w.shape)\nnp.random.seed(42)\nx = np.random.rand(m, n)\nx_aug = np.pad(x, ((0, 1), (0, 0)), 'constant', constant_values=1)\n# print(x_aug)\nw_aug = np.pad(w, ((0, 1), (0, 0)), 'constant', constant_values=b)\ny = np.dot(w_aug.T,x_aug)\nprint(y.shape)\n# print(augmented_matrix)\n# \u6dfb\u52a0\u9ad8\u65af\u566a\u58f0 \nmu, sigma = 0, 1 # \u5747\u503c\u548c\u6807\u51c6\u5dee \nnoise = np.random.normal(mu, sigma, y.shape) \nprint(noise.shape)\ny_noisy = y + noise\nfrom sklearn.model_selection import train_test_split\n\n# \u8f6c\u7f6e x_aug \u548c y_noisy \u4ee5\u8fdb\u884c\u6253\u4e71\u548c\u5206\u5272\nx_aug = x_aug.T\ny_noisy = y_noisy.T\n\n# \u5c06\u6570\u636e\u6253\u4e71\u5e76\u5206\u6210\u8bad\u7ec3\u96c6\u548c\u6d4b\u8bd5\u96c6\nx_train, x_test, y_train, y_test = train_test_split(x_aug, y_noisy, test_size=0.2, random_state=42)\n\n# \u8f93\u51fa\u7ed3\u679c\nprint(\"\u8bad\u7ec3\u96c6 X \u7684\u5f62\u72b6:\", x_train[:,:-1].shape)\nprint(\"\u6d4b\u8bd5\u96c6 X \u7684\u5f62\u72b6:\", x_test.shape)\nprint(\"\u8bad\u7ec3\u96c6 Y \u7684\u5f62\u72b6:\", y_train.shape)\nprint(\"\u6d4b\u8bd5\u96c6 Y \u7684\u5f62\u72b6:\", y_test.shape)\n
    # \u7ebf\u6027\u6a21\u578b\u51fd\u6570\ndef line_fun(x, w, b):\n    return np.dot(w.T, x)+b\n\n\n# \u8bbe\u5b9a\u4e00\u4e2a\u5e73\u65b9\u635f\u5931\u51fd\u6570\u7684\u68af\u5ea6\u4f18\u5316\ndef gradient_optimization(x, y, w, b):\n    y_pre = line_fun(x, w, b)\n    grad_w = -(y - y_pre) * x\n    grad_b = -(y - y_pre)\n    # print(f\"grad_w {grad_w.shape}, grad_b {grad_b.shape}\")\n    return grad_w, grad_b\n# \u635f\u5931\u51fd\u6570 \ndef loss_function(x, y, k, b): \n    y_pre = line_fun(x, k, b) \n    return np.mean((y - y_pre) ** 2)\n
    # \u8bbe\u5b9a\u5b66\u4e60\u53d8\u91cfw\u548cb\u7684\u521d\u59cb\u503c\nw = np.ones((5, 1))  # \u521d\u59cb\u6743\u91cd\u5411\u91cf\uff0c\u7ef4\u5ea6\u4e3a5*1\nb = 0.0\nlearning_rate = 0.001\ndecay_rate = 0.5\n\ntolerance = 1e-6\nmax_epochs = 1000\nmin_improvement = 1e-6\npatience = 10\n\n# \u8bad\u7ec3\u8fc7\u7a0b\nprevious_loss = float('inf')\nimprovement_streak = 0\n\n# \u8bad\u7ec3\u96c6\u5faa\u73af\nfor i in range(max_epochs):\n    learning_rate = 0.01 / (1 + decay_rate * i)\n    current_loss = 0\n    for n in range(x_train.shape[0]):\n        x_n = x_train[n, :-1].reshape(5,1)  # \u8f93\u5165\u7279\u5f81\u5411\u91cf\n        y_n = y_train[n]  # \u76ee\u6807\u503c\n        grad_w, grad_b = gradient_optimization(x_n, y_n, w, b)\n        # print(f\"grad_w {grad_w.T}, grad_b {grad_b}\")\n        w = w - learning_rate * grad_w\n        b = b - learning_rate * grad_b\n        current_loss += loss_function(x_n, y_n, w, b)\n\n    current_loss /= x_train.shape[0]\n    if abs(previous_loss - current_loss) < min_improvement:\n        improvement_streak += 1\n    else:\n        improvement_streak = 0\n\n    if improvement_streak >= patience:\n        print(f\"Training stopped after {i} epochs due to no significant improvement.\")\n        break\n\n    previous_loss = current_loss\n\nprint(f\"Final values: w={w.T},\\n b={b}, loss={previous_loss}\")\n
    ","tags":["Neural Network","Deep Learning","Algorithm"]},{"location":"code/opt_alg/#_2","title":"\u6700\u5c0f\u4e8c\u4e58\u6cd5","text":"\u751f\u6210\u6570\u636e\u70b9\u7ebf\u6027\u6a21\u578b\uff0c\u635f\u5931\u51fd\u6570\u548c\u68af\u5ea6\u4f18\u5316\uff1a\u968f\u673a\u68af\u5ea6\u4e0b\u964d\u6cd5
    import numpy as np\nfrom sklearn.model_selection import train_test_split\n\nn = 500\nm = 5\nw = np.array([[3,2,6,1,7]]).T\nb = 5\nnp.random.seed(42)\nx = np.random.rand(m, n)\nx_aug = np.pad(x, ((0, 1), (0, 0)), 'constant', constant_values=1)\nw_aug = np.pad(w, ((0, 1), (0, 0)), 'constant', constant_values=b)\ny = np.dot(w_aug.T,x_aug)\n\n# \u6dfb\u52a0\u9ad8\u65af\u566a\u58f0 \nmu, sigma = 0, 1 # \u5747\u503c\u548c\u6807\u51c6\u5dee \nnoise = np.random.normal(mu, sigma, y.shape) \ny_noisy = y + noise\n\n\n# \u8f6c\u7f6e x_aug \u548c y_noisy \u4ee5\u8fdb\u884c\u6253\u4e71\u548c\u5206\u5272\nx_aug = x_aug.T\ny_noisy = y_noisy.T\n\n# \u5c06\u6570\u636e\u6253\u4e71\u5e76\u5206\u6210\u8bad\u7ec3\u96c6\u548c\u6d4b\u8bd5\u96c6\nx_train, x_test, y_train, y_test = train_test_split(x_aug, y_noisy, test_size=0.2, random_state=42)\n\n# \u8f93\u51fa\u7ed3\u679c\nprint(\"\u8bad\u7ec3\u96c6 X \u7684\u5f62\u72b6:\", x_train[:,:-1].shape)\nprint(\"\u6d4b\u8bd5\u96c6 X \u7684\u5f62\u72b6:\", x_test.shape)\nprint(\"\u8bad\u7ec3\u96c6 Y \u7684\u5f62\u72b6:\", y_train.shape)\nprint(\"\u6d4b\u8bd5\u96c6 Y \u7684\u5f62\u72b6:\", y_test.shape)\n
    # \u7ebf\u6027\u6a21\u578b\u51fd\u6570\nclass Linear():\n    def __init__(self, input_dim, output_dim):\n        self.params = {}\n        self.params['w'] = np.random.randn(input_dim, output_dim).astype(np.float32)\n        self.params['b'] = np.random.randn(output_dim).astype(np.float32)\n
    def inverse_matrix(matrix):\n    try:\n        # \u5224\u65ad\u77e9\u9635\u662f\u5426\u53ef\u9006\n        if np.linalg.det(matrix) == 0:\n            return None, \"The matrix is not invertible\"\n        else:\n            # \u8ba1\u7b97\u77e9\u9635\u7684\u9006\n            inv_matrix = np.linalg.inv(matrix)\n            return inv_matrix\n    except np.linalg.LinAlgError as e:\n        return None, f\"An error occurred: {str(e)}\"\n\n# \u4f18\u5316\u7b97\u6cd5\uff1a\ndef optimizer_RLS(X, y, model, reg_lambda=0.001):\n    x_mean_T = np.mean(X, axis=0).T\n    y_mean = np.mean(y)\n    x_sub = np.subtract(X,x_mean_T)\n    # \u8ba1\u7b97w_star\u7684\u7b2c\u4e00\u9879\n    temp1 = inverse_matrix(np.dot(x_sub.T,x_sub)+reg_lambda*np.eye(x_sub.shape[1]))\n    # \u8ba1\u7b97w_star\u7684\u7b2c\u4e8c\u9879\n    temp2 = np.dot(x_sub.T,(y-y_mean))\n    w_star = np.dot(temp1,temp2)\n    b_star = y_mean - np.dot(x_mean_T, w_star)\n\n    model.params['w'] = w_star\n    model.params['b'] = b_star\n\nmodel = Linear(5, 1)\noptimizer_RLS(x_train[:,:-1], y_train, model)\nprint(\"w_pred:\",model.params['w'], \"b_pred: \", model.params['b']) # print model parameters\n
    ","tags":["Neural Network","Deep Learning","Algorithm"]},{"location":"game/","title":"Game","text":"\u6211\u5728\u73a9\u73a9\u8fc7
    • \u78a7\u84dd\u822a\u7ebf\uff1a\u9664\u4e86\u9ad8\u4e09\u65ad\u4e86\u4e00\u5e74\uff0c\u5f00\u670d\u4e00\u76f4\u73a9\u5230\u73b0\u5728\uff0c\u7a76\u6781\u8001\u54b8\u9c7c

      \u975e\u5e38\u826f\u5fc3\u7684\u6e38\u620f\uff0c\u9664\u4e86\u4e0d\u597d\u73a9\u54ea\u91cc\u90fd\u597d\uff0c\u6da9\u6da9\u662f\u6700\u201c\u5927\u201d\u7684\u7279\u70b9\u3002

    • \u660e\u65e5\u65b9\u821f\uff1a\u4e5f\u662f\u5f00\u670d\u4e00\u76f4\u73a9\u5230\u73b0\u5728\uff0c\u51e0\u4e4e\u6ca1\u65ad\u8fc7

      \u4e5f\u662f\u5f88\u597d\u7684\u6e38\u620f\uff0c\u5728\u5854\u9632\u4e8c\u6e38\u4e2d\u662f\u5f00\u62d3\u6027\u4e14\u72ec\u4e00\u6863\uff0c\u4e00\u76f4\u5728\u521b\u65b0

    • \u7edd\u533a\u96f6\uff1a\u4ece\u5d292\u5230\u5d293\uff0c\u518d\u5230\u539f\u795e\uff0c\u8df3\u8fc7\u94c1\uff0c\u5230\u4e86\u7edd\u533a\u96f6\u3002\u76ee\u524d\u4fdd\u6301\u96f6\u6c2a\u7eaa\u5f55\u4e2d

      \u5982\u679c\u4f60\u559c\u6b22\u52a8\u4f5c\u6e38\u620f\uff0c\u4f60\u5c31\u4e00\u5b9a\u80fd\u770b\u5230\u5b83\u7684\u52a8\u4f5c\u548c\u7f8e\u672f\u8bbe\u8ba1\u7684\u95ea\u5149\u70b9\u3002\u542c\u53d6\u73a9\u5bb6\u610f\u89c1\uff0c\u4e00\u76f4\u5728\u6539\u8fdb\uff0c\u5c0f\u5c0f\u5de5\u4f5c\u5ba4\u80fd\u5c55\u73b0 \u51fa\u8fd9\u4e48\u591a\u7684\u66f4\u65b0\uff0c\u5f88\u62c5\u5fc3\u4ed6\u4eec\u7684\u809d\u3002

    • \u516c\u4e3b\u8fde\u7ed3Re:Dive\uff1a\u5954\u7740\u7f8e\u672f\u4eba\u8bbe\u575a\u6301\u5728\u73a9\uff0c\u4f46\u5df2\u7ecf\u4e0d\u77e5\u9053\u4e3a\u4f55\u8981\u73a9\u4e86

      \u89d2\u8272\u5f88\u53ef\u7231\uff0c\u7f8e\u672f\u4e0d\u9519\uff0c\u4e5f\u4e0d\u6c2a\uff0c\u4ec5\u6b64\u800c\u5df2\u3002\u516c\u4f1a\u6218\u8bd7\u4eba\u63e1\u6301

    • \u851a\u84dd\u6863\u6848

      \u6bd4\u516c\u4e3b\u8fde\u7ed3\u597d\u4e00\u70b9\uff0c\u89d2\u8272\u8bbe\u8ba1\u5f88\u597d\uff0c\u5267\u60c5\u4e5f\u53ef\u5708\u53ef\u70b9\uff08\u4e3a\u6570\u4e0d\u591a\u770b\u8fc7\u5267\u60c5\u7684\uff09\uff0c\u5c31\u662f\u6709\u70b9\u6c2a\uff08\u6ca1\u6c2a\u8fc7\u4e00\u5206\u5c31\u662f\u4e86\uff09\uff0c \u5f88\u65e0\u804a\uff0c\u611f\u89c9\u5c31\u662f\u516c\u4e3b\u8fde\u7ed3\u8fd9\u6837\u7684\u9ad8\u914d\u7248\u3002

    • \u7ea2\u8b66\uff1a\u4ee5\u524d\u5f88\u559c\u6b22\u53bb\u90bb\u5c45\u5bb6\u73a9\u7ea2\u8b66\uff0c\u867d\u7136\u6ca1\u73a9\u61c2\u5c31\u662f\u4e86\uff0c\u7ecf\u5e38\u4e0b\u56de\u6765\u73a9\u3002\u6700\u8fd1\u73a9\u4e86\u65e5\u5195\u6a21\u7ec4

      \u753b\u9762\u5bf9\u5f53\u65f6\u7684\u6211\u771f\u7684\u65f6\u4e0d\u5c0f\u7684\u9707\u64bc\uff0c\u5404\u79cd\u65b0\u5947\u7684\u70b9\u5b50\u975e\u5e38\u6709\u610f\u601d\u3002\u81f3\u5c11\u6211\u5bf9\u5b83\u7684\u8bc4\u4ef7\u662f\u5f88\u9ad8\u7684

    • \u8d5b\u5c14\u53f7\uff1a\u56fd\u5185\u7ffb\u7248\u5b9d\u53ef\u68a6\uff0c\u4ece\u5c0f\u5b66\u4e00\u76f4\u73a9\u5230\u521d\u4e8c\u5de6\u53f3\uff0c\u4ee5\u524d\u7684\u7cbe\u7075\u8bbe\u8ba1\u90fd\u975e\u5e38\u6709\u7279\u70b9

      \u5c0f\u5b66\u65f6\u671f\u4ee3\u8868\uff0c\u540c\u65f6\u671f\u7684\u67094399\uff0c\u8d5b\u5c14\u53f7\uff0c\u9020\u68a6\u897f\u6e38\uff0c\u6469\u5c14\u5e84\u56ed

    • \u8650\u6740\u539f\u5f62\uff1a\u6740\u7684\u5f88\u723d

      \u521d\u4e2d\u65f6\u671f\u7684\u4ee3\u8868\uff0c\u8fd8\u8bb0\u5f97\u4ee5\u524d\u7528\u4e91\u6e38\u620f\u73a9\u4e86\u65e0\u4e3b\u4e4b\u5730

    • LOL\uff1a\u73a9\u4e86\u4e24\u5e74LOL\uff0c\u64c5\u957f\u73a9\u9ec4\u9e21\u548c\u6316\u6398\u673a\uff0c\u73b0\u5728\u5df2\u7ecf\u4e0d\u5728\u73a9\u4e86

      \u4f9d\u7136\u8bb0\u5f97\u5f53\u65f6\u4e0b\u8f7dLOL\uff0c\u5e76\u7b2c\u4e00\u6b21\u73a9\u8fd9\u79cd\u5927\u578b\u7f51\u6e38\u7684\u5fc3\u60c5

    • \u5d29\u574f\u5b66\u56ed2\uff1a\u521d\u4e09\u63a5\u89e6\u7684\uff0c\u975e\u5e38\u559c\u6b22\u7684\u5176\u753b\u98ce\u548c\u4e16\u754c\u89c2\uff0c\u81ea\u6b64\u6210\u4e3a\u7c73\u54c8\u6e38\u6b7b\u5fe0\u7c89\uff08\u867d\u7136\u73b0\u5728\u53ea\u5728\u73a9\u7edd\u533a\u96f6\uff09\uff0c\u5f53\u65f6\u7acb\u5fd7\u5165\u804c\u7c73\u54c8\u6e38\u3002\u4e0d\u77e5\u600e\u4e48\u6e10\u6e10\u4e0d\u73a9\u4e86\u3002

      \u6ee1\u660f\uff0c\u54ea\u6015\u6211\u4e0d\u73a9\u4e86\uff0c\u6211\u5bf9\u5b83\u7684\u8bc4\u4ef7\u4e5f\u662f\u6700\u9ad8\u7684\uff0c\u5f53\u65f6\u4e8c\u6e38\u5e02\u573a\u5361\u724c\u76db\u884c\uff0c\u5d29\u5d29\u5bf9\u6211\u6765\u8bf4\u5c31\u662f\u964d\u7ef4\u6253\u51fb\uff0c \u4e16\u754c\u89c2\uff0c\u7f8e\u672f\uff0c\u53ef\u73a9\u6027\uff0c\u5728\u6211\u5fc3\u91cc\u90fd\u662f\u9876\u7ea7\u3002\u5207\u52ff\u4ee5\u5982\u4eca\u7684\u773c\u5149\u770b\u8fd9\u4e2a\u8fc7\u53bb\u7684\u4f5c\u54c1\u3002

    • \u5d29\u574f3\uff1a\u9ad8\u4e2d\u63a5\u89e6\uff0c\u4ee5\u5d292\u4e3a\u5951\u673a\uff0c\u5173\u6ce8\u7c73\u54c8\u6e38\u3002\u5f53\u65f6\u5f00\u670d\u9650\u53f7\uff0c\u6211\u82b1\u4e8650rmb\u4e70\u4e861G\u6d41\u91cf\u5728\u5b66\u6821\u4e0b\u5d293\u62a2\u53f7\uff0c \u4e0d\u77e5\u4e3a\u4f55\u5bf9\u5176\u9010\u6e10\u5931\u53bb\u5174\u8da3

      \u624b\u673a\u52a8\u4f5c\u6e38\u620f\u5bf9\u5f53\u65f6\u7684\u6211\u4e5f\u662f\u964d\u7ef4\u6253\u51fb\uff0c\u753b\u9762\uff0c\u7f8e\u672f\uff0c\u52a8\u4f5c\uff0c\u90fd\u975e\u5e38\u9707\u60ca\u6211\u3002\u552f\u4e00\u7684\u7f3a\u70b9\u4fbf\u662f\u6c2a\u91d1\uff0c\u4ece\u6b64\u57cb\u4e0b\u4e86\u7c73\u6c60\u7684\u4f0f\u7b14

    • \u539f\u795e\uff1a\u73a9\u4e861\u5e74\u591a\uff0c\u56e0\u4e3a\u7ed9\u7684\u798f\u5229\u592a\u5c11\uff0c\u53c8\u62bd\u4e0d\u5230\uff0c\u4e0d\u77e5\u9053\u73a9\u7684\u610f\u4e49\uff0c\u4e8e\u662f\u5c31\u9000\u5751\u4e86

      \u5f00\u670d\u65f6\u975e\u5e38\u9707\u60ca\uff0c\u753b\u9762\uff0c\u7f8e\u672f\uff0c\u73a9\u6cd5\uff0c\u540c\u6837\u4e5f\u662f\u964d\u7ef4\u6253\u51fb\uff0c\u4f46\u662f\u62bd\u5361\u5f88\u4ee4\u4eba\u7834\u9632

    "},{"location":"game/azurLane/","title":"\u78a7\u84dd\u822a\u7ebf","text":""},{"location":"game/azurLane/#_2","title":"\u5171\u6597","text":"
    • 25\u5e74\u65b0\u5e74\u5171\u6597
    "},{"location":"game/azurLane/#_3","title":"\u5927\u4e16\u754c","text":"
    • \u5927\u4e16\u754c\u961f\u4f0d\u914d\u7f6e
    "},{"location":"game/azurLane/#_4","title":"\u811a\u672c","text":"
    • \u811a\u672c
    "},{"location":"game/azurLane/Fight_tg/","title":"\u5171\u6597\u5efa\u8bae","text":""},{"location":"game/azurLane/Fight_tg/#2025","title":"2025\u65b0\u5e74\u5171\u6597","text":"

    \u53ef\u524d\u5f80wiki\u53c2\u8003

    \u56f0\u96be\u6ee1\u961f\u5237\u7ecf\u9a8c\uff0c\u666e\u901a\u548c\u7b80\u5355\u4f4e\u8017

    \u56f0\u96be\u666e\u901a/\u7b80\u5355

    Note

    \u8981\u70b9\uff0c\u654c\u4eba\u4e3a\u4e2d\u7532\uff0c\u56e0\u6b64

    • \u9a71\u9010\uff1a\uff0c\u9c7c\u96f7\u968f\u4fbf\uff0c\u52a0\u4e2a\u996d\u76d2
    • \u8f7b\u5de1\u548c\u91cd\u5de1\uff1a\u968f\u4fbf\u5e26\uff0c\u6b7b\u4e0d\u4e86
    • \u6218\u5217\uff1a \uff0c\u52a0\u4e2a\u706b\u63a7
    • \u822a\u6bcd\uff1a \u8f70\u70b8\u548c\u9c7c\u96f7\u968f\u4fbf\uff0c\u4e0d\u91cd\u8981

    \u7a81\u51fb\u8005+\u5361/\u5510\uff0c\u6216\u8005\u4e24\u4e2a\u90fd\u5e26\uff0c\u6700\u597d\u7684\u90fd\u5e26\u4e0a\uff0c\u5305\u4e0d\u6b7b\u7684

    "},{"location":"game/azurLane/page_1/","title":"\u5927\u4e16\u754c\u961f\u4f0d\u914d\u7f6e","text":"","tags":["blhx"]},{"location":"game/azurLane/page_1/#for","title":"for \u8001\u54b8\u9c7c","text":"\u914d\u88c51\uff08\u6843\u4e4b\u592d\u592d\uff09\u914d\u88c52\uff08\u9eef\u7136\uff09

    \u7eaf\u901f\u5237\u961f\u914d\u7f6e

    Tip

    \u914d\u5408Alas\u4ee5\u53ca\u201c\u9eef\u7136\u201d\u7684\u914d\u7f6e\u4f7f\u7528, \u7b2c\u4e00\u961f2\u5976\u5988\u5e26\u4e00\u5806100\u7ea7\u4e00\u4e0b\u7ec3\u7ea7 \u7b2c\u4e8c\u961f\u5237\u5176\u4ed6\u6d77\u57df\uff0c\u901f\u5237

    ","tags":["blhx"]},{"location":"game/azurLane/page_2/","title":"\u811a\u672c","text":"

    \u89e3\u653e\u751f\u4ea7\u529b\uff0c\u89e3\u653e\u53cc\u624b

    ","tags":["blhx"]},{"location":"game/azurLane/page_2/#alas","title":"Alas","text":"

    \u53bb\u4e0b\u8f7d

    Tip

    \u6211\u63a8\u8350\u6240\u6709\u4eba\u81ea\u5df1\u9605\u8bfb\u4f7f\u7528\u65b9\u6cd5\u548c\u914d\u7f6e\u65b9\u6cd5\u3002

    \u4e0b\u9762\u662f\u4e00\u4e9b\u914d\u7f6e\uff0c\u53ef\u4ee5\u770b\u60c5\u51b5\u914d\u7f6e\uff1a

    \u4f5c\u8005 \u66f4\u65b0\u65f6\u95f4 \u4e0b\u8f7d \u9eef\u7136 2025\u5e741\u67087\u65e5","tags":["blhx"]},{"location":"music/","title":"\u97f3\u4e50","text":"

    \u97f3\u4e50\u5728\u6211\u7684\u751f\u6d3b\u4e2d\u4e0d\u53ef\u6216\u7f3a

    • \u4f4e\u97f3
    "},{"location":"music/bass/","title":"\u4f4e\u97f3\u7684\u9b45\u529b","text":"

    \u5929\u5929\u90fd\u5728\u201c\u8d1d\u65af\u7b11\u8bdd\u201d\uff0c\u4f46\u6bcf\u4e2a\u4e50\u961f\u8d1d\u65af\u53c8\u662f\u4e0d\u53ef\u6216\u7f3a\u7684\u5b58\u5728\u3002 \u5728\u8fd9\u91cc\u6211\u5206\u4eab\u4e00\u4e9b\u4f4e\u97f3\u6781\u5176\u51fa\u8272\uff0c\u6781\u5176\u4eae\u773c\u7684\u6b4c\u66f2

    • \u300a\u7121\u8d23\u4efb\u96c6\u5408\u4f53\u300b Movie, Music\uff1a\u30de\u30b5\u30e9\u30c0 Vocal: \u91cd\u97f3\u30c6\u30c8SV

      \u30de\u30b5\u30e9\u30c0\u662f\u4e00\u4f4d\u521a\u51fa\u9053\u7684p\u4e3b \u8fd9\u9996\u6b4c\u662f\u5176\u7b2c4\u9996\u66f2\u5b50\uff0c\u5728\u8fd9\u9996\u6b4c\u91cc\uff0cbass\u6210\u4e3a\u4e3b\u8c03\uff0c\u8282\u594f\u611f\u6781\u5f3a\uff0c\u914d\u5408MV\u6781\u5177\u611f\u67d3\u529b\u3002

    • \u300a\u30d5\u30a1\u30f3\u30c8\u30de\u30a4\u30ba\u300b Music , Lyrics , Arrangement : \u30a8\u30cf\u30e9\u30df\u30aa\u30ea Illustration : \u6cbc\u7530\u30be\u30f3\u30d3 Vocal: Such

      \u6bd4\u8f83\u51b7\u95e8\u7684\u6b4c\u66f2\uff0c\u4f46\u662f\u6211\u4e00\u542c\u5c31\u559c\u6b22\u4e0a\u4e86\uff0c \u4f4e\u97f3\u7684\u9f13\u70b9\u975e\u5e38\u6293\u8033\uff0c\u5bf9\u6bd4\u6ca1\u6709\u4f4e\u97f3\u9f13\u70b9\u548c\u6709\u4f4e\u97f3\u9f13\u70b9\u7684\u90e8\u5206\uff0c \u53ef\u4ee5\u53d1\u73b0\u975e\u5e38\u660e\u663e\u7684\u533a\u522b\u3002

    ","tags":["bass","\u4f4e\u97f3","music"]},{"location":"blog/archive/2025/","title":"2025","text":""},{"location":"blog/category/python/","title":"Python","text":""},{"location":"blog/category/%E6%9D%82%E8%B0%88/","title":"\u6742\u8c08","text":""},{"location":"blog/category/%E6%97%A5%E6%9C%AC/","title":"\u65e5\u672c","text":""},{"location":"blog/category/%E5%BB%BA%E7%AB%99/","title":"\u5efa\u7ad9","text":""},{"location":"tags/","title":"Tags","text":"

    \u4e0b\u9762\u662f\u4e00\u4e9b\u76f8\u5173\u6807\u7b7e\u7684\u5217\u8868:

    "},{"location":"tags/#algorithm","title":"Algorithm","text":"
    • nndl-\u4f18\u5316\u7b97\u6cd5
    "},{"location":"tags/#blog","title":"Blog","text":"
    • \u81ea\u5efa\u4e3b\u9875\uff1a\u59cb
    • Build A Simular Site
    "},{"location":"tags/#deep-learning","title":"Deep Learning","text":"
    • \u795e\u7ecf\u7f51\u7edc\u4e0e\u6df1\u5ea6\u5b66\u4e60
    • nndl-\u4f18\u5316\u7b97\u6cd5
    "},{"location":"tags/#html","title":"HTML","text":"
    • \u81ea\u5efa\u4e3b\u9875\uff1a\u59cb
    • Build A Simular Site
    "},{"location":"tags/#image","title":"Image","text":"
    • \u57fa\u4e8ePython\u7684\u89c6\u9891\u5904\u7406
    "},{"location":"tags/#material-for-mkdocs","title":"Material for MkDocs","text":"
    • \u81ea\u5efa\u4e3b\u9875\uff1a\u59cb
    • Build A Simular Site
    "},{"location":"tags/#neural-network","title":"Neural Network","text":"
    • \u795e\u7ecf\u7f51\u7edc\u4e0e\u6df1\u5ea6\u5b66\u4e60
    • nndl-\u4f18\u5316\u7b97\u6cd5
    "},{"location":"tags/#numpy","title":"Numpy","text":"
    • Numpy\u4e2d\u7684\u5e7f\u64ad\u673a\u5236
    "},{"location":"tags/#python","title":"Python","text":"
    • Numpy\u4e2d\u7684\u5e7f\u64ad\u673a\u5236
    • \u57fa\u4e8ePython\u7684\u89c6\u9891\u5904\u7406
    "},{"location":"tags/#template","title":"Template","text":"
    • Template
    "},{"location":"tags/#test","title":"Test","text":"
    • Test
    "},{"location":"tags/#vedio","title":"Vedio","text":"
    • \u57fa\u4e8ePython\u7684\u89c6\u9891\u5904\u7406
    "},{"location":"tags/#bass","title":"bass","text":"
    • \u4f4e\u97f3\u7684\u9b45\u529b
    "},{"location":"tags/#blhx","title":"blhx","text":"
    • blhx
    • Script
    "},{"location":"tags/#music","title":"music","text":"
    • \u4f4e\u97f3\u7684\u9b45\u529b
    "},{"location":"tags/#_1","title":"\u4e2a\u4eba\u7f51\u7ad9","text":"
    • \u81ea\u5efa\u4e3b\u9875\uff1a\u59cb
    • Build A Simular Site
    "},{"location":"tags/#_2","title":"\u4f4e\u97f3","text":"
    • \u4f4e\u97f3\u7684\u9b45\u529b
    "},{"location":"tags/#_3","title":"\u5e7f\u64ad\u673a\u5236","text":"
    • Numpy\u4e2d\u7684\u5e7f\u64ad\u673a\u5236
    "},{"location":"tags/#_4","title":"\u5efa\u7ad9","text":"
    • \u81ea\u5efa\u4e3b\u9875\uff1a\u59cb
    • Build A Simular Site
    "},{"location":"tags/#_5","title":"\u65e5\u672c","text":"
    • japen
    "},{"location":"tags/#_6","title":"\u673a\u5668\u5b66\u4e60","text":"
    • Numpy\u4e2d\u7684\u5e7f\u64ad\u673a\u5236
    "},{"location":"tags/#_7","title":"\u7559\u5b66","text":"
    • japen
    "},{"location":"tags/#_8","title":"\u8da3\u4e8b","text":"
    • \u7406\u5de5\u751f\u4e0d\u4f1a\u68a6\u89c1\u5df4\u752b\u6d1b\u592b\u6761\u4ef6\u53cd\u5c04
    "},{"location":"tags/#_9","title":"\u8db3\u8ff9","text":"
    • \u8db3\u8ff9
    "}]} \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index 188dfc3..84a687d 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -2,126 +2,126 @@ https://lvista.site/ - 2025-01-20 + 2025-01-21 https://lvista.site/Doc_skill/ - 2025-01-20 + 2025-01-21 https://lvista.site/about/ - 2025-01-20 + 2025-01-21 https://lvista.site/template/ - 2025-01-20 + 2025-01-21 https://lvista.site/test/ - 2025-01-20 + 2025-01-21 https://lvista.site/world/ - 2025-01-20 + 2025-01-21 https://lvista.site/anime/ - 2025-01-20 + 2025-01-21 https://lvista.site/anime/ngnl/ - 2025-01-20 + 2025-01-21 https://lvista.site/blog/ - 2025-01-20 + 2025-01-21 https://lvista.site/blog/2025/01/08/site_build/ - 2025-01-20 + 2025-01-21 https://lvista.site/blog/2025/01/10/build_sim/ - 2025-01-20 + 2025-01-21 https://lvista.site/blog/2025/01/14/jp_home/ - 2025-01-20 + 2025-01-21 https://lvista.site/blog/2025/01/19/np_bc/ - 2025-01-20 + 2025-01-21 https://lvista.site/blog/2025/01/06/Vedio_processing_by_python/ - 2025-01-20 + 2025-01-21 https://lvista.site/blog/2025/01/16/pavlovian/ - 2025-01-20 + 2025-01-21 https://lvista.site/code/ - 2025-01-20 + 2025-01-21 - https://lvista.site/code/algorithm/ - 2025-01-20 + https://lvista.site/code/nndl/ + 2025-01-21 - https://lvista.site/code/nndl/ - 2025-01-20 + https://lvista.site/code/opt_alg/ + 2025-01-21 https://lvista.site/game/ - 2025-01-20 + 2025-01-21 https://lvista.site/game/azurLane/ - 2025-01-20 + 2025-01-21 https://lvista.site/game/azurLane/Fight_tg/ - 2025-01-20 + 2025-01-21 https://lvista.site/game/azurLane/page_1/ - 2025-01-20 + 2025-01-21 https://lvista.site/game/azurLane/page_2/ - 2025-01-20 + 2025-01-21 https://lvista.site/music/ - 2025-01-20 + 2025-01-21 https://lvista.site/music/bass/ - 2025-01-20 + 2025-01-21 https://lvista.site/blog/archive/2025/ - 2025-01-20 + 2025-01-21 https://lvista.site/blog/category/python/ - 2025-01-20 + 2025-01-21 https://lvista.site/blog/category/%E6%9D%82%E8%B0%88/ - 2025-01-20 + 2025-01-21 https://lvista.site/blog/category/%E6%97%A5%E6%9C%AC/ - 2025-01-20 + 2025-01-21 https://lvista.site/blog/category/%E5%BB%BA%E7%AB%99/ - 2025-01-20 + 2025-01-21 https://lvista.site/tags/ - 2025-01-20 + 2025-01-21 \ No newline at end of file diff --git a/sitemap.xml.gz b/sitemap.xml.gz index 2b09f54..39ca3f3 100644 Binary files a/sitemap.xml.gz and b/sitemap.xml.gz differ diff --git a/tags/index.html b/tags/index.html index b932990..532a653 100644 --- a/tags/index.html +++ b/tags/index.html @@ -1638,7 +1638,7 @@

    TagsAlgorithm

    Blog