当前位置:首页 > 物联网 > 智能应用
[导读]神经网络与人工智能transformer主要差异

神经网络人工智能transformer

主要差异

1. 结构

传统的RNN:

def create_rnn():

return tf.keras.Sequential([

tf.keras.layers.LSTM(64, return_sequences=True),

tf.keras.layers.LSTM(32),

tf.keras.layers.Dense(10)

])

简单transformer:

def create_transformer():

return tf.keras.Sequential([

tf.keras.layers.MultiHeadAttention(num_heads=8, key_dim=64),

tf.keras.layers.LayerNormalization(),

tf.keras.layers.Dense(64, activation='relu'),

tf.keras.layers.Dense(10)

])

2. 处理能力

神经网络 :顺序处理。

变形器 :并行处理带有注意机制。

3. 用例

神经网络 传统的计算机任务,计算机视觉。

变形器 :NLP,大型语言模型。

实际推行技巧

1. 选型

def choose_model(task_type, input_shape):

if task_type == 'image':

return create_cnn()

elif task_type == 'sequence':

return create_rnn()

else:

return create_basic_nn()

2. 超参数调整

from keras_tuner import RandomSearch

def tune_hyperparameters(model_builder, x_train, y_train):

tuner = RandomSearch(

model_builder,

objective='val_accuracy',

max_trials=5

)

tuner.search(x_train, y_train,

epochs=5,

validation_split=0.2)

return tuner.get_best_hyperparameters()[0]

现实世界案例研究

1.医学影像分析

实例:COVD-19X射线分类:

def create_medical_cnn():

model = tf.keras.Sequential([

tf.keras.layers.Conv2D(32, (3, 3), activation='relu', input_shape=(224, 224, 3)),

tf.keras.layers.BatchNormalization(),

tf.keras.layers.MaxPooling2D((2, 2)),

tf.keras.layers.Conv2D(64, (3, 3), activation='relu'),

tf.keras.layers.BatchNormalization(),

tf.keras.layers.MaxPooling2D((2, 2)),

tf.keras.layers.Conv2D(128, (3, 3), activation='relu'),

tf.keras.layers.BatchNormalization(),

tf.keras.layers.GlobalAveragePooling2D(),

tf.keras.layers.Dense(2, activation='softmax')

])

return model

定制数据生成器,增加:

def create_medical_data_generator():

return tf.keras.preprocessing.image.ImageDataGenerator(

rotation_range=20,

width_shift_range=0.2,

height_shift_range=0.2,

horizontal_flip=True,

validation_split=0.2,

preprocessing_function=tf.keras.applications.resnet50.preprocess_input

)

2.财务时间序列预测

例子:股价预测:

def create_financial_lstm():

model = tf.keras.Sequential([

tf.keras.layers.LSTM(50, return_sequences=True, input_shape=(60, 5)),

tf.keras.layers.Dropout(0.2),

tf.keras.layers.LSTM(50, return_sequences=False),

tf.keras.layers.Dropout(0.2),

tf.keras.layers.Dense(1)])

return

财务数据特征工程:

def prepare_financial_data(df, look_back=60):

features = ['Open', 'High', 'Low', 'Close', 'Volume']

scaler = MinMaxScaler()

scaled_data = scaler.fit_transform(df[features])

X, y = [], []

for i in range(look_back, len(scaled_data)):

X.append(scaled_data[i-look_back:i])

y.append(scaled_data[i, 3]) # Predicting Close price

return np.array(X), np.array(y), scaler

示范部署指南

1.模型优化

量化:

def quantize_model(model):

converter = tf.lite.TFLiteConverter.from_keras_model(model)

converter.optimizations = [tf.lite.Optimize.DEFAULT]

converter.target_spec.supported_types = [tf.float16]

tflite_model = converter.convert()

return tflite_model

修剪:

def create_pruned_model(model, training_data):

pruning_params = {

'pruning_schedule': tfmot.sparsity.keras.PolynomialDecay(

initial_sparsity=0.30,

final_sparsity=0.80,

begin_step=0,

end_step=end_step)

}

model_pruned = tfmot.sparsity.keras.prune_low_magnitude(

model, pruning_params)

return model_pruned

2.生产部署

提供模式服务的瓶状API:

from flask import Flask, request, jsonify

app = Flask(__name__)

model = None

def load_model():

global model

model = tf.keras.models.load_model('path/to/model')

@app.route('/predict', methods=['POST'])

def predict():

data = request.json['data']

processed_data = preprocess_input(data)

prediction = model.predict(processed_data)

return jsonify({'prediction': prediction.tolist()})

文档文件:

FROM python:3.8-slim

WORKDIR /app

COPY requirements.txt .

RUN pip install -r requirements.txt

COPY . .

CMD ["python", "app.py"]

最新的Transformers创新

1. Vision Transformers (ViT)

def create_vit_model(input_shape, num_classes):

inputs = tf.keras.Input(shape=input_shape)

# Patch embedding

patches = tf.keras.layers.Conv2D(filters=768, kernel_size=16, strides=16)(inputs)

flat_patches = tf.keras.layers.Reshape((-1, 768))(patches)

# Position embedding

positions = tf.range(start=0, limit=flat_patches.shape[1], delta=1)

pos_embedding = tf.keras.layers.Embedding(input_dim=flat_patches.shape[1], output_dim=768)(positions)

x = flat_patches + pos_embedding

# Transformer blocks

for _ in range(12):

x = transformer_block(x)

x = tf.keras.layers.GlobalAveragePooling1D()(x)

outputs = tf.keras.layers.Dense(num_classes, activation='softmax')(x)

return tf.keras.Model(inputs=inputs, outputs=outputs)

2. MLP-Mixer Architecture

def mlp_block(x, hidden_units, dropout_rate):

x = tf.keras.layers.Dense(hidden_units, activation='gelu')(x)

x = tf.keras.layers.Dense(x.shape[-1])(x)

x = tf.keras.layers.Dropout(dropout_rate)(x)

return x

def mixer_block(x, tokens_mlp_dim, channels_mlp_dim, dropout_rate):

# Token-mixing

y = tf.keras.layers.LayerNormalization()(x)

y = tf.transpose(y, perm=[0, 2, 1])

y = mlp_block(y, tokens_mlp_dim, dropout_rate)

y = tf.transpose(y, perm=[0, 2, 1])

x = x + y

# Channel-mixing

y = tf.keras.layers.LayerNormalization()(x)

y = mlp_block(y, channels_mlp_dim, dropout_rate)

return x + y

优化表现技巧

1.记忆管理

大型数据集定制数据生成器:

class DataGenerator(tf.keras.utils.Sequence):

def __init__(self, x_set, y_set, batch_size):

self.x, self.y = x_set, y_set

self.batch_size = batch_size

def __len__(self):

return int(np.ceil(len(self.x) / self.batch_size))

def __getitem__(self, idx):

batch_x = self.x[idx * self.batch_size:(idx + 1) * self.batch_size]

batch_y = self.y[idx * self.batch_size:(idx + 1) * self.batch_size]

return np.array(batch_x), np.array(batch_y)

2.培训优化

混合精密训练:

def enable_mixed_precision():

policy = tf.keras.mixed_precision.Policy('mixed_float16')

tf.keras.mixed_precision.set_global_policy(policy)

具有梯度积累的定制训练循环:

def enable_mixed_precision():

policy = tf.keras.mixed_precision.Policy('mixed_float16')

tf.keras.mixed_precision.set_global_policy(policy)

Custom training loop with gradient accumulation:

Python

def train_with_gradient_accumulation(model, dataset, accumulation_steps=4):

optimizer = tf.keras.optimizers.Adam()

gradients = [tf.zeros_like(v) for v in model.trainable_variables]

for step, (x_batch, y_batch) in enumerate(dataset):

with tf.GradientTape() as tape:

predictions = model(x_batch, training=True)

loss = compute_loss(y_batch, predictions)

loss = loss / accumulation_steps

grads = tape.gradient(loss, model.trainable_variables)

gradients = [(acc_grad + grad) for acc_grad, grad in zip(gradients, grads)]

if (step + 1) % accumulation_steps == 0:

optimizer.apply_gradients(zip(gradients, model.trainable_variables))

gradients = [tf.zeros_like(v) for v in model.trainable_variables]

追加资源

1. 网上学习平台

课程:深入学习专业化

快速综合学习:实际深入学习

张力流官方教程

2. 书籍

伊恩·古德费罗的《深度学习》

迈克尔尼尔森的《神经网络与深度学习》

3. 实践平台

卡格尔:真实世界数据集和竞争

谷歌COLAB:免费的GPU接入

张力流游乐场:互动可视化

结论

神经网络是不断发展的强大工具。本指南提供了基础,但该领域正在迅速发展。坚持实验,保持好奇,记住实践经验是最好的老师。

下面是一些成功的秘诀:

从简单的架构开始。

彻底了解你的数据。

仔细监控培训指标。

为您的模型使用版本控制。

继续进行最新的研究.

记住 :最好的学习方法是实现和试验不同的架构和数据集。

20250114_6785b114e9b0a__理解神经网络,第三部分神经网络人工智能

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭