深度学习 -- 直面配分函数(深度学习 -- 直面配分函数定义)
bigegpt 2025-06-23 14:57 2 浏览
在深度学习中,对数似然梯度是一种常用的优化方法,用于最小化损失函数。它通过计算损失函数相对于模型参数的梯度,来更新模型参数,以使损失函数最小化。
对数似然梯度的计算可以通过反向传播算法来实现。反向传播算法是一种计算梯度的方法,它利用链式法则将梯度从输出层向输入层传播。具体来说,对于每个参数,反向传播算法计算其对应的梯度,并将其用于参数的更新。
以下是一个使用Python示例来说明对数似然梯度的计算过程:
import numpy as np
# 定义模型参数
theta = np.array([0.5, -0.5])
# 定义输入数据和标签
X = np.array([[1, 2], [3, 4]])
y = np.array([1, -1])
# 定义损失函数
def loss_function(theta, X, y):
logits = np.dot(X, theta)
prob = 1 / (1 + np.exp(-logits))
loss = -np.mean(y * np.log(prob) + (1 - y) * np.log(1 - prob))
return loss
# 计算对数似然梯度
def gradient(theta, X, y):
logits = np.dot(X, theta)
prob = 1 / (1 + np.exp(-logits))
grad = np.dot(X.T, prob - y) / len(X)
return grad
# 更新模型参数
learning_rate = 0.1
for i in range(100):
grad = gradient(theta, X, y)
theta -= learning_rate * grad
loss = loss_function(theta, X, y)
print(f"Epoch {i+1}: Loss = {loss}")
print("Final parameters:", theta)
在上述示例中,我们定义了一个简单的二分类模型,其中模型参数为theta,输入数据为X,标签为y。我们使用逻辑回归的损失函数来计算损失,并使用梯度下降法来更新模型参数。在每个迭代步骤中,我们计算梯度并更新参数,然后计算损失并输出。最终,我们得到了训练后的模型参数。
这是一个简单的示例,实际中的深度学习模型可能更加复杂,但对数似然梯度的计算原理是相同的。通过计算损失函数相对于模型参数的梯度,我们可以使用梯度下降等优化算法来最小化损失函数,从而得到更好的模型参数。
深度学习中的随机最大似然和对比散度是两种常用的训练方法,用于估计模型参数。
- 随机最大似然(Stochastic Maximum Likelihood,SML):随机最大似然是一种基于最大似然估计的训练方法,其中参数通过最大化观测数据的似然函数来进行估计。在深度学习中,SML通常用于训练生成模型,如生成对抗网络(GAN)。在训练过程中,生成网络试图最大化真实样本的似然概率,而判别网络则试图最小化生成样本的似然概率。
- 对比散度(Contrastive Divergence,CD):对比散度是一种用于训练受限玻尔兹曼机(Restricted Boltzmann Machine,RBM)的方法。RBM是一种无向概率图模型,用于学习数据的概率分布。在CD算法中,首先从训练数据中采样一个可见样本,然后通过 Gibbs采样 过程来生成一个隐藏样本,再通过反向Gibbs采样来生成一个重构样本。CD算法通过最小化重构样本和原始样本之间的散度来更新RBM的参数。
下面是一个使用Python示例代码来说明随机最大似然和对比散度的应用:
import numpy as np
# 随机最大似然
def stochastic_maximum_likelihood(data, model):
# 计算观测数据的似然概率
likelihood = model.calculate_likelihood(data)
# 最大化似然概率
model.update_parameters(likelihood)
# 对比散度
def contrastive_divergence(data, rbm):
# 采样可见样本
visible_sample = data[np.random.choice(len(data))]
# Gibbs采样生成隐藏样本
hidden_sample = rbm.sample_hidden(visible_sample)
# 反向Gibbs采样生成重构样本
reconstructed_sample = rbm.sample_visible(hidden_sample)
# 计算散度并更新参数
rbm.update_parameters(visible_sample, hidden_sample, reconstructed_sample)
以上代码只是示例,实际应用中会根据具体的模型和数据进行相应的修改。
深度学习中的伪似然(Pseudolikelihood)是一种用于估计模型参数的方法,特别适用于处理高维数据的概率模型。
伪似然方法的基本思想是将联合概率分布拆解为条件概率分布的乘积,然后最大化每个条件概率的似然函数。这样做的好处是可以避免直接计算高维联合概率分布,从而简化计算。
以下是一个使用Python示例来说明伪似然的概念和应用:
假设我们有一个二值化的图像数据集,每个样本都是一个28x28的像素矩阵。我们想要建立一个概率模型来描述这些图像的生成过程。
首先,我们可以将每个像素视为一个随机变量,假设它们之间是条件独立的。然后,我们可以使用伪似然方法来估计每个像素的条件概率分布。
import numpy as np
# 假设我们有一个二值化的图像数据集,每个样本都是一个28x28的像素矩阵
# 假设我们有1000个样本
num_samples = 1000
image_size = 28
# 生成随机的二值化图像数据
data = np.random.randint(2, size=(num_samples, image_size, image_size))
# 使用伪似然方法估计每个像素的条件概率分布
pixel_probs = np.zeros((image_size, image_size, 2))
for i in range(image_size):
for j in range(image_size):
# 计算每个像素的条件概率
pixel_probs[i, j, 0] = np.mean(data[:, i, j] == 0)
pixel_probs[i, j, 1] = np.mean(data[:, i, j] == 1)
# 打印第一个像素的条件概率分布
print("Pixel probabilities for the first pixel:")
print(pixel_probs[0, 0, :])
在上述示例中,我们生成了一个随机的二值化图像数据集,并使用伪似然方法估计了每个像素的条件概率分布。最后,我们打印了第一个像素的条件概率分布。
通过估计每个像素的条件概率分布,我们可以使用这些概率来生成新的图像样本,或者进行图像分类等任务。
深度学习中的得分匹配(Score Matching)和比率匹配(Ratio Matching)是两种常用的训练方法,用于估计模型参数。
- 得分匹配(Score Matching):得分匹配是一种基于概率密度函数的训练方法,其中参数通过最小化模型概率密度函数的负对数得分函数来进行估计。得分函数是模型概率密度函数的梯度,通过最小化得分函数来使模型的梯度与真实数据的梯度相匹配。得分匹配通常用于无向图模型,如受限玻尔兹曼机(RBM)。
- 比率匹配(Ratio Matching):比率匹配是一种基于比率的训练方法,其中参数通过最小化模型概率密度函数的负对数比率函数来进行估计。比率函数是模型概率密度函数的比率的对数,通过最小化比率函数来使模型的比率与真实数据的比率相匹配。比率匹配通常用于生成对抗网络(GAN)中的生成网络训练。
下面是使用Python进行得分匹配和比率匹配的简单示例:
- 得分匹配:
import torch
from torch import nn
from torch.autograd import grad
# 定义模型
class ScoreMatchingModel(nn.Module):
def __init__(self):
super(ScoreMatchingModel, self).__init__()
# 定义模型结构
def forward(self, x):
# 计算模型输出
# 定义损失函数
def score_matching_loss(model, x):
# 计算模型输出
y = model(x)
# 计算得分函数
score = grad(y, x, create_graph=True)[0]
# 计算得分匹配损失
loss = torch.mean(torch.sum(score ** 2, dim=1))
return loss
# 创建模型实例
model = ScoreMatchingModel()
# 创建输入数据
x = torch.randn(100, 10)
# 计算损失
loss = score_matching_loss(model, x)
# 反向传播更新参数
loss.backward()
- 比率匹配:
import torch
from torch import nn
# 定义模型
class RatioMatchingModel(nn.Module):
def __init__(self):
super(RatioMatchingModel, self).__init__()
# 定义模型结构
def forward(self, x):
# 计算模型输出
# 定义损失函数
def ratio_matching_loss(model, x_real, x_fake):
# 计算模型输出
y_real = model(x_real)
y_fake = model(x_fake)
# 计算比率函数
ratio = y_fake - y_real
# 计算比率匹配损失
loss = torch.mean(torch.sum(ratio ** 2, dim=1))
return loss
# 创建模型实例
model = RatioMatchingModel()
# 创建真实数据和生成数据
x_real = torch.randn(100, 10)
x_fake = torch.randn(100, 10)
# 计算损失
loss = ratio_matching_loss(model, x_real, x_fake)
# 反向传播更新参数
loss.backward()
请注意,以上示例仅用于说明概念,实际应用中需要根据具体的模型和数据进行适当的修改。
深度学习去噪得分匹配(Denoising Score Matching)是一种用于去除图像或信号中的噪声的方法。它结合了深度学习和得分匹配的思想。
在深度学习去噪得分匹配中,我们首先使用一个深度神经网络作为去噪模型。该模型接受带有噪声的输入图像,并尝试恢复出原始的无噪声图像。
具体而言,深度学习去噪得分匹配的步骤如下:
- 训练阶段:使用一组有噪声的图像作为训练数据。我们将这些有噪声的图像输入到深度神经网络中,并将网络的输出与原始无噪声图像进行比较。通过最小化重构误差,我们可以调整网络的参数,使其能够更好地去除噪声。
- 预测阶段:在训练完成后,我们可以使用已经训练好的深度神经网络来去除新的输入图像中的噪声。通过将输入图像输入到网络中,并获取网络的输出,我们可以得到去噪后的图像。
下面是一个使用Python示例来说明深度学习去噪得分匹配的概念和应用:
import tensorflow as tf
from tensorflow.keras.layers import Conv2D, Conv2DTranspose
# 构建深度神经网络模型
def build_denoising_model():
model = tf.keras.Sequential([
Conv2D(32, (3, 3), activation='relu', padding='same', input_shape=(28, 28, 1)),
Conv2D(64, (3, 3), activation='relu', padding='same'),
Conv2DTranspose(32, (3, 3), activation='relu', padding='same'),
Conv2DTranspose(1, (3, 3), activation='sigmoid', padding='same')
])
return model
# 加载有噪声的图像数据作为训练数据
train_data = load_noisy_images()
# 构建模型
model = build_denoising_model()
# 编译模型
model.compile(optimizer='adam', loss='mse')
# 训练模型
model.fit(train_data, train_data, epochs=10, batch_size=32)
# 使用模型去噪新的输入图像
noisy_image = load_noisy_image()
denoised_image = model.predict(noisy_image)
在上面的示例中,我们首先使用build_denoising_model函数构建了一个深度神经网络模型。然后,我们加载有噪声的图像数据作为训练数据,并使用模型的fit方法进行训练。最后,我们使用训练好的模型对新的输入图像进行去噪处理,得到去噪后的图像。
请注意,上述示例仅为演示目的,并可能需要根据具体的数据和问题进行调整和修改。
深度学习噪声对比估计(Noise Contrastive Estimation, NCE)是一种用于估计概率模型参数的方法,特别适用于训练具有大量参数的深度学习模型。
在深度学习噪声对比估计中,我们考虑一个二分类问题,其中一个类别是我们关注的真实数据样本,另一个类别是由噪声分布生成的样本。我们的目标是通过训练一个二分类器来区分真实数据和噪声数据。
具体来说,我们使用一个深度神经网络作为二分类器,输入是样本的特征向量。对于每个样本,我们将其标记为正样本(真实数据)或负样本(噪声数据)。然后,我们使用交叉熵损失函数来训练网络,最小化真实数据样本被错误分类的概率。
以下是一个使用Python的示例代码,展示了如何使用深度学习噪声对比估计进行训练:
import tensorflow as tf
from tensorflow.keras import layers
# 创建一个简单的深度神经网络作为二分类器
model = tf.keras.Sequential([
layers.Dense(64, activation='relu'),
layers.Dense(1, activation='sigmoid')
])
# 定义损失函数和优化器
loss_fn = tf.keras.losses.BinaryCrossentropy()
optimizer = tf.keras.optimizers.Adam()
# 定义训练步骤
@tf.function
def train_step(inputs, labels):
with tf.GradientTape() as tape:
predictions = model(inputs)
loss = loss_fn(labels, predictions)
gradients = tape.gradient(loss, model.trainable_variables)
optimizer.apply_gradients(zip(gradients, model.trainable_variables))
return loss
# 进行训练
for epoch in range(num_epochs):
for batch_inputs, batch_labels in train_dataset:
loss = train_step(batch_inputs, batch_labels)
print('Epoch {} Loss: {}'.format(epoch+1, loss))
在上述代码中,我们使用了TensorFlow来构建深度神经网络模型,并使用交叉熵损失函数和Adam优化器进行训练。训练步骤中的train_step函数定义了单个训练步骤,其中计算了模型的预测值和损失,并应用梯度更新模型参数。
请注意,上述代码只是一个简化的示例,实际使用中可能需要根据具体问题进行适当的调整和修改。
深度学习估计配分函数(Deep Learning Estimation of Partition Function)是一种用于估计概率模型的配分函数的方法。配分函数是概率模型中的一个重要参数,它用于归一化模型的输出,使其成为一个有效的概率分布。
深度学习估计配分函数的方法通常基于生成模型,其中模型的目标是学习生成数据的概率分布。通过估计配分函数,我们可以得到生成模型的参数,从而可以生成新的样本、计算样本的概率等。
具体而言,深度学习估计配分函数的步骤如下:
- 定义生成模型:选择一个适当的生成模型,例如变分自编码器(Variational Autoencoder)或生成对抗网络(Generative Adversarial Network)等。
- 训练模型:使用训练数据对生成模型进行训练。在训练过程中,我们通过最大化似然函数或最小化生成模型与真实数据之间的差异来调整模型参数。
- 估计配分函数:在训练完成后,我们可以使用生成模型来估计配分函数。这可以通过计算生成模型对所有可能样本的概率之和来实现。
举例来说,我们可以使用Python中的TensorFlow或PyTorch等深度学习框架来实现深度学习估计配分函数的方法。以下是一个使用变分自编码器进行配分函数估计的简单示例:
import tensorflow as tf
# 定义变分自编码器模型
class VariationalAutoencoder(tf.keras.Model):
def __init__(self):
super(VariationalAutoencoder, self).__init__()
# 定义模型的层
def call(self, inputs):
# 定义模型的前向传播过程
# 创建模型实例
model = VariationalAutoencoder()
# 定义训练数据
train_data = ...
# 编译模型
model.compile(optimizer='adam', loss='mse')
# 训练模型
model.fit(train_data, epochs=10)
# 估计配分函数
partition_function = tf.reduce_sum(tf.exp(model.predict(all_possible_samples)))
在这个示例中,我们首先定义了一个变分自编码器模型,然后使用训练数据对模型进行训练。最后,我们使用模型对所有可能样本进行预测,并计算生成模型对这些样本的概率之和,从而得到配分函数的估计值。
深度学习退火重要采样(Deep Learning Annealed Importance Sampling)是一种用于近似计算模型的边缘似然或配分函数的方法。它结合了深度学习和重要采样的思想,通过逐渐降低噪声的方差来提高采样的效率和精度。
在深度学习退火重要采样中,我们使用一个深度神经网络作为采样器,生成一系列样本。然后,我们使用这些样本计算模型的边缘似然或配分函数的近似值。为了提高采样的效率和精度,我们采用退火策略,逐渐减小噪声的方差。
具体来说,我们从一个高噪声的分布开始,逐渐降低噪声的方差,直到达到目标分布。在每个退火步骤中,我们使用深度神经网络生成样本,并利用重要采样的方法对样本进行加权,以获得更准确的估计值。
以下是一个使用Python示例代码,演示如何使用深度学习退火重要采样来估计模型的配分函数:
import numpy as np
import torch
import torch.nn as nn
import torch.optim as optim
# 定义深度神经网络模型
class Generator(nn.Module):
def __init__(self):
super(Generator, self).__init__()
self.fc1 = nn.Linear(input_dim, hidden_dim)
self.fc2 = nn.Linear(hidden_dim, output_dim)
def forward(self, x):
x = torch.relu(self.fc1(x))
x = self.fc2(x)
return x
# 定义退火策略
def annealing_schedule(t):
return max(0.5, np.exp(-0.01 * t))
# 定义重要采样权重计算函数
def importance_weights(log_probs, annealing_weights):
max_log_prob = torch.max(log_probs)
weights = torch.exp(log_probs - max_log_prob) * annealing_weights
return weights / torch.sum(weights)
# 初始化模型和优化器
generator = Generator()
optimizer = optim.Adam(generator.parameters(), lr=0.01)
# 训练模型
num_samples = 1000
num_steps = 100
annealing_weights = torch.zeros(num_samples)
for t in range(num_steps):
# 生成样本
samples = generator(torch.randn(num_samples, input_dim))
# 计算样本的对数概率
log_probs = torch.log_softmax(samples, dim=1)
# 计算重要采样权重
annealing_weights = importance_weights(log_probs, annealing_schedule(t))
# 优化模型
loss = -torch.mean(torch.sum(log_probs * annealing_weights, dim=1))
optimizer.zero_grad()
loss.backward()
optimizer.step()
# 估计配分函数
samples = generator(torch.randn(num_samples, input_dim))
log_probs = torch.log_softmax(samples, dim=1)
estimated_partition_function = torch.mean(torch.sum(torch.exp(log_probs) * annealing_weights, dim=1))
print("Estimated Partition Function:", estimated_partition_function)
在上述示例代码中,我们首先定义了一个深度神经网络模型作为采样器,然后定义了退火策略和重要采样权重计算函数。接下来,我们初始化模型和优化器,并使用训练循环来训练模型。最后,我们使用训练好的模型和重要采样权重来估计模型的配分函数。
请注意,这只是一个简单的示例,实际应用中可能需要根据具体问题进行适当的修改和调整。
深度学习桥式采样(Bridge Sampling in Deep Learning)是一种用于估计模型间边缘概率的方法。它是基于桥式抽样(Bridge Sampling)理论的扩展,用于解决深度学习模型中的边缘概率估计问题。
在深度学习中,我们通常使用神经网络来建模复杂的数据分布。然而,由于神经网络的复杂性,计算模型间边缘概率的精确估计是困难的。深度学习桥式采样通过引入一个辅助模型(auxiliary model)来简化边缘概率的估计过程。
具体而言,深度学习桥式采样使用两个模型:主模型和辅助模型。主模型是我们想要估计边缘概率的模型,而辅助模型是一个简化的模型,它的边缘概率可以更容易地估计。通过在两个模型之间构建一个桥式(bridge),我们可以使用辅助模型的采样结果来估计主模型的边缘概率。
在Python中,可以使用深度学习框架(如TensorFlow、PyTorch)来实现深度学习桥式采样。以下是一个简单的示例代码:
import tensorflow as tf
# 定义主模型和辅助模型
main_model = tf.keras.Sequential([
# 主模型的网络结构
# ...
])
aux_model = tf.keras.Sequential([
# 辅助模型的网络结构
# ...
])
# 训练主模型和辅助模型
# ...
# 使用辅助模型进行采样
num_samples = 1000
samples = aux_model.sample(num_samples)
# 计算主模型的边缘概率估计
log_probs = main_model.log_prob(samples)
marginal_prob = tf.reduce_mean(tf.exp(log_probs))
print("Estimated marginal probability:", marginal_prob)
在上述代码中,我们首先定义了主模型和辅助模型的网络结构。然后,我们可以使用深度学习框架提供的训练方法来训练这两个模型。接下来,我们使用辅助模型进行采样,得到一些样本。最后,我们计算主模型对这些样本的边缘概率估计,并输出结果。
需要注意的是,深度学习桥式采样仍然是一个相对较新的研究领域,因此在实际应用中可能需要根据具体问题进行调整和改进。
相关推荐
- AI「自我复制」能力曝光,RepliBench警示:大模型正在学会伪造身份
-
科幻中AI自我复制失控场景,正成为现实世界严肃的研究课题。英国AISI推出RepliBench基准,分解并评估AI自主复制所需的四大核心能力。测试显示,当前AI尚不具备完全自主复制能力,但在获取资源...
- 【Python第三方库安装】介绍8种情况,这里最全看这里就够了!
-
**本图文作品主要解决CMD或pycharm终端下载安装第三方库可能出错的问题**本作品介绍了8种安装方法,这里最全的python第三方库安装教程,简单易上手,满满干货!希望大家能愉快地写代码,而不要...
- pyvips,一个神奇的 Python 库!(pythonvip视频)
-
大家好,今天为大家分享一个神奇的Python库-pyvips。在图像处理领域,高效和快速的图像处理工具对于开发者来说至关重要。pyvips是一个强大的Python库,基于libvips...
- mac 安装tesseract、pytesseract以及简单使用
-
一.tesseract-OCR的介绍1.tesseract-OCR是一个开源的OCR引擎,能识别100多种语言,专门用于对图片文字进行识别,并获取文本。但是它的缺点是对手写的识别能力比较差。2.用te...
- 实测o3/o4-mini:3分钟解决欧拉问题,OpenAI最强模型名副其实!
-
号称“OpenAI迄今为止最强模型”,o3/o4-mini真实能力究竟如何?就在发布后的几小时内,网友们的第一波实测已新鲜出炉。最强推理模型o3,即使遇上首位全职提示词工程师RileyGoodsid...
- 使用Python将图片转换为字符画并保存到文件
-
字符画(ASCIIArt)是将图片转换为由字符组成的艺术作品。利用Python,我们可以轻松实现图片转字符画的功能。本教程将带你一步步实现这个功能,并详细解释每一步的代码和实现原理。环境准备首先,你...
- 5分钟-python包管理器pip安装(python pip安装包)
-
pip是一个现代的,通用、普遍的Python包管理工具。提供了对Python包的查找、下载、安装、卸载的功能,是Python开发的基础。第一步:PC端打开网址:选择gz后缀的文件下载第二步:...
- 网络问题快速排查,你也能当好自己家的网络攻城狮
-
前面写了一篇关于网络基础和常见故障排查的,只列举了工具。没具体排查方式。这篇重点把几个常用工具的组合讲解一下。先有请今天的主角:nslookup及dig,traceroute,httping,teln...
- 终于把TCP/IP 协议讲的明明白白了,再也不怕被问三次握手了
-
文:涤生_Woo下周就开始和大家成体系的讲hadoop了,里面的每一个模块的技术细节我都会涉及到,希望大家会喜欢。当然了你也可以评论或者留言自己喜欢的技术,还是那句话,希望咱们一起进步。今天周五,讲讲...
- 记一次工控触摸屏故障的处理(工控触摸屏维修)
-
先说明一下,虽然我是自动化专业毕业,但已经很多年不从事现场一线的工控工作了。但自己在单位做的工作也牵涉到信息化与自动化的整合,所以平时也略有关注。上一周一个朋友接到一个活,一家光伏企业用于启动机组的触...
- 19、90秒快速“读懂”路由、交换命令行基础
-
命令行视图VRP分层的命令结构定义了很多命令行视图,每条命令只能在特定的视图中执行。本例介绍了常见的命令行视图。每个命令都注册在一个或多个命令视图下,用户只有先进入这个命令所在的视图,才能运行相应的命...
- 摄像头没图像的几个检查方法(摄像头没图像怎么修复)
-
背景描述:安防监控项目上,用户的摄像头运行了一段时间有部分摄像头不能进行预览,需要针对不能预览的摄像头进行排查,下面列出几个常见的排查方法。问题解决:一般情况为网络、供电、设备配置等情况。一,网络检查...
- 小谈:必需脂肪酸(必需脂肪酸主要包括)
-
必需脂肪酸是指机体生命活动必不可少,但机体自身又不能合成,必需由食物供给的多不饱和脂肪酸(PUFA)。必需脂肪酸主要包括两种,一种是ω-3系列的α-亚麻酸(18:3),一种是ω-6系列的亚油酸(18:...
- 期刊推荐:15本sci四区易发表的机械类期刊
-
虽然,Sci四区期刊相比收录在sci一区、二区、三区的期刊来说要求不是那么高,投稿起来也相对容易一些。但,sci四区所收录的期刊中每本期刊的投稿难易程度也是不一样的。为方便大家投稿,本文给大家推荐...
- be sick of 用法考察(be in lack of的用法)
-
besick表示病了,做谓语.本身是形容词,有多种意思.最通常的是:生病,恶心,呕吐,不适,晕,厌烦,无法忍受asickchild生病的孩子Hermother'sverysi...
- 一周热门
- 最近发表
-
- AI「自我复制」能力曝光,RepliBench警示:大模型正在学会伪造身份
- 【Python第三方库安装】介绍8种情况,这里最全看这里就够了!
- pyvips,一个神奇的 Python 库!(pythonvip视频)
- mac 安装tesseract、pytesseract以及简单使用
- 实测o3/o4-mini:3分钟解决欧拉问题,OpenAI最强模型名副其实!
- 使用Python将图片转换为字符画并保存到文件
- 5分钟-python包管理器pip安装(python pip安装包)
- 网络问题快速排查,你也能当好自己家的网络攻城狮
- 终于把TCP/IP 协议讲的明明白白了,再也不怕被问三次握手了
- 记一次工控触摸屏故障的处理(工控触摸屏维修)
- 标签列表
-
- mybatiscollection (79)
- mqtt服务器 (88)
- keyerror (78)
- c#map (65)
- resize函数 (64)
- xftp6 (83)
- bt搜索 (75)
- c#var (76)
- mybatis大于等于 (64)
- xcode-select (66)
- mysql授权 (74)
- 下载测试 (70)
- linuxlink (65)
- pythonwget (67)
- androidinclude (65)
- logstashinput (65)
- hadoop端口 (65)
- vue阻止冒泡 (67)
- oracle时间戳转换日期 (64)
- jquery跨域 (68)
- php写入文件 (73)
- kafkatools (66)
- mysql导出数据库 (66)
- jquery鼠标移入移出 (71)
- 取小数点后两位的函数 (73)