当前位置: 首页 > news >正文

深度学习助力股市预测:LSTM、RNN和CNN模型实战解析

作者:老余捞鱼

原创不易,转载请标明出处及原作者。

写在前面的话:众所周知,传统的股票预测模型有着各种各样的局限性。但在我的最新研究中,探索了一些方法来高效预测股市走势,即CNN、RNN和LSTM这些深度学习模型。这种方法在揭示金融数据的复杂性和变化趋势方面取得了一些成效。在本文中,我将带大家一步步了解如何利用特斯拉股票的案例,通过这些模型进行数据预处理、模型构建、训练和预测,希望这样一个新的股市预测工具模板,能助力您的投资决策。

一、股票价格预测方法的问题与发展

股票市场,尤其是股票价格预测,是一个备受研究人员和从业人员关注的领域。传统的时间序列预测方法,如自回归(AR)、自回归移动平均(ARMA)和自回归综合移动平均(ARIMA)模型在这方面发挥了重要作用。这些方法依赖于预定义的数学公式来模拟单变量时间序列,由于其简单性和可解释性而被广泛接受。

然而,AR、ARMA 和 ARIMA 有其固有的局限性,因此不适合捕捉金融时间序列数据的潜在动态特征。其中一个限制是,为一个时间序列确定的模型不能很好地推广到其他时间序列,从而降低了其通用性。此外,这些模型难以识别数据中蕴含的复杂模式,限制了其有效性。

近年来,卷积神经网络(CNN)、循环神经网络(RNN)等先进的机器学习模型及其变体(如长短期记忆(LSTM))引起了广泛关注。这些模型利用其从历史数据中学习的能力,不需要预定义的方程式,因此非常适合揭示隐藏的关系和依赖性。它们将金融数据建模为多维问题,从而实现了更准确、更稳健的预测。

本文将探讨 CNN、RNN 和基于注意力的 LSTM 在预测特斯拉股票价格中的应用。目的是展示每种方法的优缺点,并深入探讨深度学习模型如何超越传统线性模型。

二、为什么选择特斯拉股票?

特斯拉公司 (TSLA) 是最吸引分析师和投资者的股票之一,是评估 LSTM、RNN 和 CNN 等高级预测模型性能的理想选择。该公司是高风险、高回报投资的代表,因其技术创新以及围绕其领导地位和市场动态的争议而备受关注。

该公司创始人埃隆-马斯克(Elon Musk)是科技行业中最两极分化的人物之一,他一直在推动对特斯拉业绩的猜测。他支持唐纳德-特朗普总统参加 2024 年美国大选,进一步加剧了不确定性,加剧了该股的波动性,如下图所示。

这种猜测水平加上马斯克的公众形象,凸显了特斯拉作为旨在捕捉动态嘈杂数据的模型试验场的潜力。从 2010 年到 2024 年的收盘价就说明了这一点。

三、数据准备

3.1 数据收集

我们使用 yfinance 库中的特斯拉历史股价数据。

import yfinance as yf
import pandas as pddef fetch_tesla_stock_data():"""Fetch Tesla's historical stock data from Yahoo Finance.Returns:pd.DataFrame: DataFrame containing adjusted close prices indexed by date."""# Fetch data for Tesla (TSLA) from Yahoo Financeticker = "TSLA"start_date = "2010-01-01"end_date = "2024-11-17"tesla = yf.download(ticker, start=start_date, end=end_date)# Return a DataFrame with the adjusted close pricestesla_data = tesla[['Adj Close']].rename(columns={"Adj Close": "adjClose"})tesla_data.index.name = "date"return tesla_data# Fetch Tesla stock data
tesla_data = fetch_tesla_stock_data()# Display the first few rows of data
print(tesla_data.head(10))

3.2 数据预处理

开发一个预处理管道,首先使用 MinMaxScaler 对特斯拉调整后的收盘价进行归一化处理。这一步骤可确保模型能有效处理数据,而不会受到原始值规模的影响。我们还使用滑动窗口创建历史股票价格序列。每个滑动窗口跨越 20 天(窗口大小)。最后,我们将数据重塑为适合 LSTM、RNN 和 CNN 的格式。重要的是,我们不对训练和测试数据进行洗牌,以保留股票价格的时间顺序。

import numpy as np
import pandas as pd
from sklearn.preprocessing import MinMaxScaler
from sklearn.metrics import mean_absolute_percentage_error
from sklearn.model_selection import train_test_split
# Define the window size and prediction time
window_size = 20
prediction_steps = 10
# Function to create sequences
def create_sequences(data, window_size, prediction_steps):
X = []
y = []
for i in range(window_size, len(data) - prediction_steps):
X.append(data[i-window_size:i, 0]) # input sequence
y.append(data[i+prediction_steps-1, 0]) # target value (price at the next timestep)
return np.array(X), np.array(y)
# Fetch Tesla stock data
data = tesla_data[['adjClose']].values
# Normalize the data using MinMaxScaler
scaler = MinMaxScaler(feature_range=(0, 1))
scaled_data = scaler.fit_transform(data)
# Create sequences for the model
X, y = create_sequences(scaled_data, window_size, prediction_steps)
# Reshape input data to be in the shape [samples, time steps, features]
X = X.reshape(X.shape[0], X.shape[1], 1)
# Split the data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, shuffle=False)
print(f"Training data shape: {X_train.shape}")
print(f"Testing data shape: {X_test.shape}")

四、使用模型进行预测

4.1 使用 LSTM 预测

该模型包含一个自定义注意力层,以增强其捕捉特斯拉股票价格中关键时间模式的能力。该模型由 50 个单元组成,用于预处理输入序列,并通过内部记忆机制保留重要的时间依赖性。我们还加入了一个剔除层,通过在训练过程中随机禁用神经元来降低过度拟合的风险。训练结束后,我们将测试模型的性能,并绘制其预测结果与实际股票价格的对比图。

import numpy as np
import tensorflow as tf
from keras.models import Sequential
from keras.layers import LSTM, Dense, Dropout, Attention, Add, LayerNormalization, Layer
from keras.callbacks import EarlyStopping
from sklearn.preprocessing import MinMaxScaler
from sklearn.metrics import mean_absolute_percentage_error# Define a custom attention layer
class AttentionLayer(Layer):def __init__(self, **kwargs):super(AttentionLayer, self).__init__(**kwargs)def build(self, input_shape):self.W = self.add_weight(shape=(input_shape[2], input_shape[2]), initializer='random_normal', trainable=True)self.b = self.add_weight(shape=(input_shape[1],), initializer='zeros', trainable=True)super(AttentionLayer, self).build(input_shape)def call(self, inputs):q = tf.matmul(inputs, self.W)a = tf.matmul(q, inputs, transpose_b=True)attention_weights = tf.nn.softmax(a, axis=-1)return tf.matmul(attention_weights, inputs)# LSTM model with attention and early stopping
def build_lstm_model_with_attention(input_shape):model = Sequential()model.add(LSTM(units=50, return_sequences=True, input_shape=input_shape))model.add(Dropout(0.2))# Attention layermodel.add(AttentionLayer())model.add(LayerNormalization())model.add(LSTM(units=50, return_sequences=False))model.add(Dropout(0.2))model.add(Dense(units=1))  # Output layer for predictionmodel.compile(optimizer='adam', loss='mean_squared_error')return model# Build the LSTM model with attention
model = build_lstm_model_with_attention(X_train.shape[1:])# Implement EarlyStopping to prevent overfitting
early_stopping = EarlyStopping(monitor='val_loss', patience=10, restore_best_weights=True)# Train the model with EarlyStopping and 50 epochs
history = model.fit(X_train, y_train, epochs=70, batch_size=32, validation_data=(X_test, y_test), callbacks=[early_stopping])# Evaluate the model
predicted_stock_price = model.predict(X_test)
predicted_stock_price = scaler.inverse_transform(predicted_stock_price)# Inverse scale the actual stock prices
y_test_scaled = scaler.inverse_transform(y_test.reshape(-1, 1))# Calculate MAPE
mape = mean_absolute_percentage_error(y_test_scaled, predicted_stock_price)
print(f"Mean Absolute Percentage Error (MAPE): {mape:.2f}%")# Plot the results
plt.figure(figsize=(10, 6))
plt.plot(y_test_scaled, label="Actual Tesla Stock Price", color='blue')
plt.plot(predicted_stock_price, label="Predicted Tesla Stock Price", color='red')
plt.title('Tesla Stock Price Prediction with LSTM', fontsize=14)
plt.xlabel('Time', fontsize=12)
plt.ylabel('Scaled Stock Price (USD)', fontsize=12)
plt.legend()
plt.grid(True)
plt.show()

该模型从数值上看良好,平均百分比误差为 0.17%

4.2 使用 RNN(递归神经网络)预测

LSTM 在处理顺序数据方面表现相当出色。然后,我们整合了一个 RNN,以检验它是否能捕捉时间依赖性。此外,我们还使用双向 RNN 来考虑过去和未来的输入。

from keras.models import Sequential
from keras.layers import SimpleRNN, Dense, Dropout# Define the RNN model
def build_rnn_model(input_shape):model = Sequential()model.add(SimpleRNN(units=50, return_sequences=True, input_shape=input_shape))model.add(Dropout(0.2))model.add(SimpleRNN(units=50, return_sequences=False))model.add(Dropout(0.2))model.add(Dense(units=1))  # Output layer for predictionmodel.compile(optimizer='adam', loss='mean_squared_error')return model# Build the RNN model
rnn_model = build_rnn_model(X_train.shape[1:])# Train the model
rnn_history = rnn_model.fit(X_train, y_train, epochs=70, batch_size=32, validation_data=(X_test, y_test))# Evaluate the model
predicted_stock_price_rnn = rnn_model.predict(X_test)
predicted_stock_price_rnn = scaler.inverse_transform(predicted_stock_price_rnn)# Inverse scale the actual stock prices
y_test_scaled = scaler.inverse_transform(y_test.reshape(-1, 1))# Calculate MAPE for RNN
mape_rnn = mean_absolute_percentage_error(y_test_scaled, predicted_stock_price_rnn)
print(f"Mean Absolute Percentage Error (MAPE) for RNN: {mape_rnn:.2f}%")
# Plot the results for RNN model
plt.figure(figsize=(12, 6))
plt.plot(y_test_scaled, label="Actual Tesla Stock Price", color='blue')
plt.plot(predicted_stock_price_rnn, label="Predicted Tesla Stock Price", color='red')
plt.title('Tesla Stock Price Prediction with RNN', fontsize=14)
plt.xlabel('Time', fontsize=12)
plt.ylabel(' Scaled Stock Price (USD)', fontsize=12)
plt.legend()
plt.grid(True)
plt.show()

下图是RNN 的预测结果:

这是 LSTM 与 RNN的比较图:

如图所示, RNN 模型的平均绝对百分比误差和 LSTM 相近。

4.3 使用 CNN(卷积神经网络)预测

最后,我们使用 CNN 来研究它在预测特斯拉股价方面的表现。该模型的结构是自动学习数据中的空间层次和模式。我们应用了多个卷积层,使用过滤器来检测输入数据中的重要特征。此外,我们还使用池化层来降低特征图的维度,并保留最重要的信息。由于我们使用全连接层,因此输出是预测未来股价的回归值。

from keras.models import Sequential
from keras.layers import Conv1D, MaxPooling1D, Flatten, Dense, Dropout, BatchNormalization
from keras.callbacks import EarlyStopping,ReduceLROnPlateau
from sklearn.metrics import mean_absolute_percentage_error
from sklearn.preprocessing import MinMaxScaler
from sklearn.model_selection import train_test_splitdef build_cnn_model(input_shape):model = Sequential()model.add(Conv1D(filters=64, kernel_size=3, activation='relu', input_shape=input_shape))model.add(BatchNormalization())model.add(MaxPooling1D(pool_size=2))model.add(Conv1D(filters=64, kernel_size=3, activation='relu'))model.add(BatchNormalization())# Change pool_size to avoid reducing dimensions to zeromodel.add(MaxPooling1D(pool_size=2))# Add a condition to avoid further reduction if dimensions are too smallmodel.add(Conv1D(filters=64, kernel_size=3, activation='relu'))model.add(BatchNormalization())model.add(MaxPooling1D(pool_size=1))  # Adjusted pool sizemodel.add(Flatten())model.add(Dropout(0.4))model.add(Dense(units=100, activation='relu'))model.add(Dropout(0.2))model.add(Dense(units=1))  # Output layer for predictionmodel.compile(optimizer='adam', loss='mean_squared_error')return modelcnn_model = build_cnn_model(X_train.shape[1:])
early_stopping = EarlyStopping(monitor='val_loss', patience=30, restore_best_weights=True)
reduce_lr = ReduceLROnPlateau(monitor='val_loss', factor=0.5, patience=10, min_lr=1e-6)cnn_history = cnn_model.fit(X_train, y_train, epochs=200, batch_size=32, validation_data=(X_test, y_test), callbacks=[early_stopping, reduce_lr]
)# Build the CNN model
cnn_model = build_cnn_model(X_train.shape[1:])# Define EarlyStopping callback
early_stopping = EarlyStopping(monitor='val_loss', patience=30, restore_best_weights=True)# Train the model with early stopping and 100 epochs
cnn_history = cnn_model.fit(X_train, y_train, epochs=100, batch_size=32, validation_data=(X_test, y_test), callbacks=[early_stopping])# Evaluate the model
predicted_stock_price_cnn = cnn_model.predict(X_test)
predicted_stock_price_cnn = scaler.inverse_transform(predicted_stock_price_cnn)# Inverse scale the actual stock prices
y_test_scaled = scaler.inverse_transform(y_test.reshape(-1, 1))# Calculate MAPE for CNN
mape_cnn = mean_absolute_percentage_error(y_test_scaled, predicted_stock_price_cnn)
print(f"Mean Absolute Percentage Error (MAPE) for CNN: {mape_cnn:.2f}%")# Plot the results for CNN model
plt.figure(figsize=(12, 6))
plt.plot(y_test_scaled, label="Actual Tesla Stock Price", color='blue')
plt.plot(predicted_stock_price_cnn, label="Predicted Tesla Stock Price (CNN)", color='red')
plt.title('Tesla Stock Price Prediction with CNN', fontsize=14)
plt.xlabel('Time', fontsize=12)
plt.ylabel('Scaled Stock Price (USD)', fontsize=12)
plt.legend()
plt.grid(True)
plt.show()

下图是 CNN 的预测结果:

这是 CNN 与LSTM 、RNN的比较图:

CNN 模型的平均绝对百分比误差为 0.14%,优于 LSTM 和 RNN。

4.4 比较结果

三种模型的平均绝对误差百分比如下:

import matplotlib.pyplot as plt
mape_scores = [mape, mape_rnn, mape_cnn]
models = ['LSTM', 'RNN', 'CNN']
# Create the bar chart
plt.figure(figsize=(6, 4))
plt.bar(models, mape_scores, color=['blue', 'green', 'orange'])
# Add labels and title
plt.title('MAPE Comparison for LSTM, RNN, and CNN', fontsize=14)
plt.xlabel('Models', fontsize=12)
plt.ylabel('MAPE (%)', fontsize=12)
# Show the MAPE values on top of the bars
for i, v in enumerate(mape_scores):
plt.text(i, v + 0.1, f'{v:.2f}%', fontsize=12)
# Display the plot
plt.show()

性能比较图如下:

基于深度学习的股票预测方法采用三种不同的神经架构,能够很好地捕捉隐藏的动态变化。虽然特斯拉股票波动性很大,但我们的模型实现了非常低的平均绝对百分比误差(MAPE):LSTM和RNN 都是 0.17%,CNN 为 0.14%。

这证明了深度学习模型能有效捕捉时间差和隐藏模式,而 CNN 能有效捕捉股票价格的突然变化和趋势。

五、观点总结

  • 传统时间序列预测模型存在局限性:AR、ARMA 和 ARIMA 等传统模型在金融数据的预测中表现出模型泛化能力差和难以捕捉复杂模式的问题。
  • 深度学习模型在股票预测中的优势:CNN、RNN 和 LSTM 等深度学习模型能够从历史数据中自动学习,无需预设的数学方程,更适合处理金融时间序列数据的复杂性。
  • 特斯拉股票的特殊性:特斯拉股票的高波动性和与其相关的公众关注度,使其成为测试股票预测模型的理想案例。
  • 模型性能比较:通过对比 LSTM、RNN 和 CNN 模型在特斯拉股票预测上的表现,得出 CNN 模型在本次实验中具有最佳的预测能力。

精选10篇和股票预测相关的文章推荐:

  1. 仅需八步,打造私人专属智能股票预测模型
  2. 手把手教会你用 AI 和 Python 进行股票交易预测(完整代码干货)
  3. 揭秘:如何用思想增强型LSTM网络精准预测股价?
  4. 震惊金融界!三大深度学习模型联袂,竟创出66,941.5%逆天回报率!
  5. 美国大选后,用HMM模型做特斯拉股价波动解析
  6. 使用堆叠 LSTM 模型预测市场趋势
  7. 获得简街市场预测大赛金牌的预测策略模型
  8. 融合篇:用 OpenAI o1 草莓模型和 Python 预测股市行情
  9. 【Python时序预测系列】基于LSTM实现多输入多输出单步预测(案例+源码)
  10. 用 Python 中的量子机器学习预测股票价格

谢谢您阅读到最后,希望本文能给您带来新的收获。祝您投资顺利!如果对文中的内容有任何疑问,请给我留言,必复。


本文内容仅限技术探讨和学习,不构成任何投资建议。

相关文章:

深度学习助力股市预测:LSTM、RNN和CNN模型实战解析

作者:老余捞鱼 原创不易,转载请标明出处及原作者。 写在前面的话:众所周知,传统的股票预测模型有着各种各样的局限性。但在我的最新研究中,探索了一些方法来高效预测股市走势,即CNN、RNN和LSTM这些深度学习…...

.NET能做什么?全面解析.NET的应用领域

.NET 是由微软开发的一个开源、跨平台的开发框架。它不仅支持构建各种应用程序,还能运行在不同的操作系统上,包括 Windows、Linux 和 macOS。自从 .NET Core 的推出,.NET 成为了一个现代化的开发平台,能够满足企业和开发者日益多样…...

分布式事务入门 一

分布式事务入门 一 您好,我是今夜写代码,今天学习下分布式事务相关理论,以及常见的解决方案,为后续掌握Seata分布式事务框奠定基础。 为什么需要分布式事务? 分布式事务主要由于存储资源的分布性,通常涉及多个数据库。 分布式…...

华为,新华三,思科网络设备指令

1. 设备信息查看 华为 display version # 查看设备版本信息 display device # 查看设备硬件信息 新华三(H3C) display version # 查看设备版本信息 display device # 查看设备硬件信息 锐捷 show version …...

深入理解HTML页面加载解析和渲染过程(一)

一篇老文章,存在草稿有点可惜 HTML页面呈现通常包括三个主要过程:加载、解析和渲染。让我们详细探讨每个过程。 1. 加载过程 加载过程主要涉及获取页面所需的所有资源。这个过程包括以下步骤: 1.1 URL资源加载 缓存读取:浏览器…...

Odoo 免费开源 ERP:通过 JavaScript 创建对话框窗口的技术实践分享

作者 | 老杨 出品 | 上海开源智造软件有限公司(OSCG) 概述 在本文中,我们将深入研讨如何于 Odoo 18 中构建 JavaScript(JS)对话框或弹出窗口。对话框乃是展现重要讯息、确认用户操作以及警示用户留意警告或错误的行…...

Word批量更改题注

文章目录 批量更改批量去除空格 在写文章的时候,往往对图片题注有着统一的编码要求,例如以【图 1- xx】。一般会点击【引用】->【插入题注】来插入题注,并且在引用的时候,点击【引用】->【交叉引用】,并且在交叉…...

电脑缺失libcurl.dll怎么解决?详解电脑libcurl.dll文件丢失问题

一、libcurl.dll文件丢失的原因 libcurl.dll是一个用于处理URL传输的库文件,广泛应用于各种基于网络的应用程序。当这个文件丢失时,可能会导致相关应用程序无法正常运行。以下是libcurl.dll文件丢失的一些常见原因: 软件安装或卸载不完整&a…...

OpenCV相机标定与3D重建(36)计算两幅图像之间基本矩阵(Fundamental Matrix)的函数findFundamentalMat()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 从两幅图像中的对应点计算基本矩阵。 cv::findFundamentalMat 是 OpenCV 中用于计算两幅图像之间基本矩阵(Fundamental Matrix&#…...

JQ中的each()方法与$.each()函数的使用区别

介绍 jquery里的 each() 是一个强大的遍历工具,用于迭代集合中的元素,并为每个元素执行指定的函数‌。它既可以用于遍历 jQuery对象集合,也可以用于遍历普通的数组或对象。 each()对象遍历 语法: $(selector).each(function(in…...

浅谈下雪花算法的原理,及在项目中使用需要注意哪些事项

目录 背景 雪花算法原理 算法特点 注意事项 总结 背景 雪花算法是一种分布式ID生成算法,由Twitter提出,用于在分布式系统中生成全局唯一的ID。该算法通过将64位的长整型数字分为符号位、时间戳、工作机器ID和序列号四个部分,确保了ID的…...

洛谷P1536 村村通(c嘎嘎)

题目链接:P1536 村村通 - 洛谷 | 计算机科学教育新生态 题目难度:普及/提高 解题思路:本题很明显考察是并查集,并查集之前我的博客介绍过可以看看这篇 洛谷P1551 亲戚(c嘎嘎)-CSDN博客,本题是…...

双指针——查找总价格为目标值的两个商品

一.题目描述 LCR 179. 查找总价格为目标值的两个商品 - 力扣(LeetCode) 二.题目解析 这个题目非常简单,其实就是判断有没有两个数加起来等于target。 三.算法解析 1.暴力解法 暴力解法的话我们可以枚举出所有的情况,然后判…...

智慧园区小程序开发制作功能介绍

智慧园区小程序开发制作功能介绍 智慧园区小程序系统作为一款面向园区企业的一站式线上服务平台,可为企业提供数智化的园区办公服务。智慧园区小程序功能介绍 1、园区公告、政策信息查看足不出户掌握最新动态,“园区公告、政策信息”等信息。首页点击对应…...

【面经】25届 双非本科 字节跳动 北京 四年的总结

点击“硬核王同学”,选择“关注” 福利干货第一时间送达 大家好,我是硬核王同学,最近在做免费的嵌入式知识分享,帮助对嵌入式感兴趣的同学学习嵌入式、做项目、找工作! 给大家分享一个25届本科大佬的面经&#xff0c…...

MySql幻读问题

认识具有反复性。 之前以为理解了幻读,最近看黑马的mysql教程以为再次加深了认识。然而现在认为之前的理解都是错误的,而且网上很多关于幻读的解释,都不太准确。 关于幻读的最佳解释还是要看官网mysql官网幻读解释 脏读和不可重复读比较好理…...

欧拉计划启航篇(一)

目录 1.什么是欧拉计划 2.简单介绍 3.访问不上去怎么办 4.第一题的代码编写 5.代码的优化 1.什么是欧拉计划 欧拉计划是和我们的数学知识相关的一个网站,但是这个网站上面的相关的问题需要我们去使用编程的知识去进行解决,因此这个适合对于想要提升…...

Pandas系列|第二期:Pandas中的数据结构

1.Pandas中的数据结构:Series和DataFrame Pandas 的主要数据结构是 Series (一维数据)与 DataFrame(二维数据),这两种数据结构足以处理金融、统计、社会科学、工程等领域里的大多数典型用例。 Series 是一…...

GitLab 服务变更提醒:中国大陆、澳门和香港用户停止提供服务(GitLab 服务停止)

目录 前言 一. 变更详情 1. 停止服务区域 2. 邮件通知 3. 新的服务提供商 4. 关键日期 5. 行动建议 二. 迁移指南 三. 注意事项 四. 相关推荐 前言 近期,许多位于中国大陆、澳门和香港的 GitLab 用户收到了一封来自 GitLab 官方的重要通知。根据这封邮件…...

基于openEuler22.09部署OpenStack Yoga云平台(一)

OpenStack Yoga部署 安装OpenStack 一、基础准备 基于OpenStack经典的三节点环境进行部署,三个节点分别是控制节点(controller)、计算节点(compute)、存储节点(storage),其中存储…...

信息安全管理:通用安全管理checklist

通用安全管理checklist是对信息安全管理调查问卷的一个补充,将以前没有包含的检查点纳入进来,算是对这个系列的一个拾遗与结尾。内容包含安全策略与计划、组织和人员安全、安全工程管理、安全产品管理与符合性五部分。 一、安全策略与安全计划 ▼▼安全…...

硬件设计-硬件 EMC 设计规范

目录 引言: 常见原因 总体概念及考虑 布局 屏蔽 滤波 引言: 本规范只简绍 EMC 的主要原则与结论,为硬件工程师们在开发设计中抛砖引玉。 电磁干扰的三要素是干扰源、干扰传输途径、干扰接收器。EMC 就围绕这些 问题进行研究。最基本的…...

【C++】数据结构 单链表的实现(企业存储用户数据的实现)

本篇博客给大家带来的是用C语言来实现数据结构的单链表(企业存储用户数据的实现) 🐟🐟文章专栏:C 🚀🚀若有问题评论区下讨论,我会及时回答 ❤❤欢迎大家点赞、收藏、分享 你们的支持…...

【Vue3+ts入门小试牛刀】

Vue 3是一个流行的JavaScript框架,它提供了创建交互式用户界面的工具。Vite是一个现代化的构建工具,用于快速构建Vue应用。TypeScript是一种类型安全的JavaScript的超集,它可以帮助我们在开发过程中减少错误。 下面是一个使用Vue 3、Vite和T…...

AI发展新态势:从技术突破到安全隐忧

AI安全的新挑战 近期AI领域出现了令人担忧的新发现。根据最新研究,AI模型已经开始展现出策略性欺骗的倾向。具体表现在以下几个方面: 策略性欺骗行为的出现 在实验中发现,当研究人员试图让AI执行一些"反Anthropic"的操作时(如获取模型权限和外部服务器访问),模…...

肝功能不正常可以过教师入职体检吗?

如何看肝功能报告单 转氨酶正常等于肝功能正常吗?要想看懂肝功能报告单就要看懂各指标含义。 1、总胆红素TbiL正常值是 1.7-17.1μmol/L 急性黄疸型肝炎活动性肝炎肝坏死、肝癌、胰头癌都异常偏高。 2、直接胆红素 DbiL正常值是 0-6.84μmol/L 结石病、肝癌、胰头癌与这项…...

二百八十二、ClickHouse——删除Linux中的ClickHouse

一、目的 由于ClickHosue的库表发生变化,需要删除原有的表结构数据,才能直接把脚本里文件重新安装 二、删除步骤 1、关闭ClickHouse服务 systemctl stop clickhouse-server 2、卸载ClickHouse软件包 sudo yum remove clickhouse-server clickhouse…...

Disruptor 高性能环形消息框架

官方文档:Disruptor 1. 简介 Disruptor是一个高性能的互进程(Inter-process)和多线程(Multi-threaded)消息处理库,由LMAX交易所开发,用于在Java虚拟机(JVM)上实现高性能…...

青少年编程与数学 02-005 移动Web编程基础 05课题、rem布局与媒体查询

青少年编程与数学 02-005 移动Web编程基础 05课题、rem布局与媒体查询 一、rem单位1. 定义和计算2. 应用场景3. 优点4. 缺点5. 实现响应式布局的方案 二、媒体查询基本语法常用媒体类型常用表达式示例 三、less基本语法主要特性编译和使用总结 四、less嵌套1. 使用媒体查询2. 嵌…...

SuperMap iClient3D for Cesium等高线标注

kele 前言 在三维地形分析中,等高线分析是一种非常重要的分析方法,它能直观的表达出地形的高低起伏特征,在三维系统中受到广泛应用。在SuperMap iClient3D for Cesium中,等高线分析是前端GPU分析,能够分析并渲染出等高…...

HTTP状态码

1xx 信息响应类 表示接收到请求并继续处理。 100 Continue - 客户端应继续发送请求。101 Switching Protocols - 客户端请求服务器切换协议版本。 2xx 成功响应类 表示操作成功被接收、理解并处理。 200 OK - 请求成功,服务器已将所请求的资源返回给客户端。201…...

纯div+css+js弹出窗

目的&#xff1a;实现弹出窗、仅关闭弹窗之后才能操作。自适应宽度与高度、当文本内容太多时、添加滚动条效果。 效果图 源码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport"…...

python如何使用RSA加密,避免明文密码

如果在python脚本中出现明文密码&#xff0c;就不符合安全的需求&#xff0c;而md5加密又不够安全&#xff0c;推荐RSA加密&#xff0c;原理不多说&#xff0c;直接说怎么弄 首先执行这个函数&#xff0c;生成公钥和私钥并写入文件 #pip3 install pycryptodome from Crypto i…...

easegen将教材批量生成可控ppt课件方案设计

之前客户提出过一个需求&#xff0c;就是希望可以将一本教材&#xff0c;快速的转换为教学ppt&#xff0c;虽然通过人工程序脚本的方式&#xff0c;已经实现了该功能&#xff0c;但是因为没有做到通用&#xff0c;每次都需要修改脚本&#xff0c;无法让客户自行完成所有流程&am…...

通过远程控制软件实现企业高效协作

在这个信息技术迅猛发展的时代&#xff0c;远程办公已经成为一种趋势&#xff0c;而远程控制软件则是连接分散团队的重要工具。技术的革新不仅推动了远程控制软件的广泛应用&#xff0c;也为现代办公带来了高效的协作体验。本文将探讨远程控制软件的发展&#xff0c;并以RayLin…...

交换机与路由器的区别

交换机和路由器是网络中的两种关键设备&#xff0c;它们各自承担不同的功能&#xff0c;主要区别体现在以下几个方面&#xff1a; 一、工作层次与功能 交换机&#xff1a; 工作层次&#xff1a;交换机主要工作在OSI模型的第二层&#xff0c;即数据链路层。 功能&#xff1a;交…...

每天40分玩转Django:Django国际化

Django国际化 一、今日学习内容概述 学习模块重要程度主要内容国际化基础⭐⭐⭐⭐⭐基本概念、配置设置字符串翻译⭐⭐⭐⭐⭐翻译标记、消息文件模板国际化⭐⭐⭐⭐模板标签、过滤器动态内容翻译⭐⭐⭐⭐模型字段、表单翻译 二、国际化基础配置 # settings.py# 启用国际化 …...

游戏开发-UE4高清虚幻引擎教程

简介 Unreal Engine 4 相关教程&#xff0c;涵盖美术流程、独立游戏制作编程、虚拟现实实战、高级材质系统、蓝图可视化编程及进阶、RPG 游戏与特效开发、VR 交互虚拟漫游等方面。包含大量视频教程、工程文件及源码&#xff0c;如 UE4 零基础美术教程中有火焰材质等案例及模型…...

信号与系统基础知识3:小波变换

信号与系统基础知识3&#xff1a;小波变换 一、本文内容与前置知识点1. 本文内容2. 前置知识点 二、小波变换介绍1. 一个变化忽快忽慢的信号&#xff08;1&#xff09;DFT的频谱数据信息&#xff08;2&#xff09;DFT的漏掉的频谱数据信息 2. 小波变换-时域和频域之间的妥协&am…...

memory泄露分析方法(Binder,Window,View篇)

View泄露&#xff1a;从Hprof找大量重复的view&#xff0c;点击查看text文案如果相同则找产品他们确认是否合理 window泄露&#xff1a;代码或dumpsys window来监测是否有大量同名window&#xff0c;不能用windowtoken来辨别是否重复window&#xff0c;每个window token都不一样…...

如何阻止盗版软件在互联网上传播

阻止公司软件的盗版传播是一项复杂但重要的任务&#xff0c;可以通过技术、法律和管理手段相结合来实现。以下是一些有效的措施&#xff1a; 1. 技术措施 1.1 软件保护 使用软件加密&#xff1a;采用强大的代码混淆、加密技术和反篡改机制。硬件绑定&#xff1a;将软件激活与…...

设计模式--装饰器模式【结构型模式】

设计模式的分类 我们都知道有 23 种设计模式&#xff0c;这 23 种设计模式可分为如下三类&#xff1a; 创建型模式&#xff08;5 种&#xff09;&#xff1a;单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式。结构型模式&#xff08;7 种&#xff09;&#xff1…...

CTFHUB-web进阶-php

我们用蚁剑中的这个插件来做这些关卡 一.LD_PRELOAD 发现这里有一句话木马&#xff0c;并且把ant给了我们&#xff0c;我们直接连接蚁剑 右键 选择模式&#xff0c;都可以试一下&#xff0c;这里第一个就可以 点击开始 我们进入到目录&#xff0c;刷新一下&#xff0c;会有一个…...

谷歌开发者工具 - 网络篇

Chrome DevTools - Network网络篇 一、官网二、主要用途三、网络篇1.网络工具栏&#xff08;1&#xff09;网络活动&#xff08;2&#xff09;保留日志&#xff08;3&#xff09;网络状况&#xff08;4&#xff09;网络设置 2.搜索和过滤&#xff08;1&#xff09;搜索&#xf…...

量子退火与机器学习(1):少量数据求解未知QUBO矩阵,以少见多

文章目录 前言ー、复习QUBO&#xff1a;中药配伍的复杂性1.QUBO 的介入&#xff1a;寻找最佳药材组合 二、难题&#xff1a;QUBO矩阵未知的问题1.为什么这么难&#xff1f; 三、稀疏建模(Sparse Modeling)1. 欠定系统中的稀疏解2. L1和L2的选择&#xff1a; 三、压缩感知算法(C…...

JDK高频面试题(包重点)

一、什么是JDK JDK&#xff08;Java Development Kit&#xff09;即 Java 开发工具包&#xff0c;是 Java 编程的基础与核心&#xff0c;由 Sun Microsystems&#xff08;现归属于 Oracle 公司 &#xff09;开发&#xff0c;主要作用如下&#xff1a; 1、提供编译环境 它包含了…...

本地部署 LLaMA-Factory

本地部署 LLaMA-Factory 1. 本地部署 LLaMA-Factory2. 下载模型3. 微调模型3-1. 下载数据集3-2. 配置参数3-3. 启动微调3-4. 模型评估3-5. 模型对话3-6. 导出模型3-7. 使用 vllm 推理 1. 本地部署 LLaMA-Factory 下载代码&#xff0c; git clone https://github.com/hiyouga/…...

内置ALC的前置放大器D2538A/D3308

一、概述 D2538A/D3308是芯谷科技推出的带有ALC&#xff08;自动电平控制&#xff09;的前置音频放大器芯片&#xff0c;最初产品为单声道/立体声收录机及盒式录音机而开发&#xff0c;作为录音/回放的磁头放大器使用&#xff1b;由于产品的高增益、低噪声及ALC外部可调的特性&…...

20241227解决使用向日葵远程工具连接ubuntu20.04.5出现黑屏的问题

20241227解决使用向日葵远程工具连接ubuntu20.04.5出现黑屏的问题 2024/12/27 14:40 参考资料&#xff1a; 百度&#xff1a;先日葵 https://sunlogin.oray.com/ 贝锐向日葵 百度&#xff1a;向日葵 连接 ubuntu22.04.5 黑屏 https://blog.csdn.net/catssi/article/details/139…...

Thinkphp 使用workerman消息实现消息推送完整示例

1.版本说明&#xff1a;ThinkPHP6.0 、PHP8.0 2.实现原理 应用场景&#xff0c;监听用户登陆&#xff0c;修改用户登陆状态&#xff0c;通过心跳时间计算用户是否下线&#xff0c;其他应用场景自行修改逻辑即可。 第一步&#xff1a;安装workerman composer require topthin…...