360 Secure SkillHub
360 安全技能中心

Keras

面向使用 Keras/TensorFlow 构建神经网络的用户,提供序列式与函数式 API 选择、输入形状、激活函数与损失匹配、正则化、回调、数据管道和常见训练问题排查等代码模式与诊断建议,并将偏好记录在本地记忆目录中。

ivangdavila
ivangdavila
热度 79.95
最近更新 2026-05-11 17:27:12
分类:开发依赖:代码执行 / 读写文件应用场景:代码生成 / 调试排错 / 概念解释

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add keras
Metadata
name
Keras
slug
keras
version
1.0.0
homepage
https://clawic.com/skills/keras
description
Build, train, and debug deep learning models with Keras patterns, layer recipes, and training diagnostics.
metadata
{"clawdbot":{"emoji":"🧠","requires":{"bins":["python3"]},"os":["linux","darwin","win32"]}}

Setup

On first use, check setup.md for integration guidelines. The skill stores preferences in ~/keras/ when the user confirms.

When to Use

User builds neural networks with Keras or TensorFlow. Agent handles model architecture, layer configuration, training loops, callbacks, debugging loss issues, and deployment preparation.

Architecture

Memory lives in ~/keras/. See memory-template.md for setup.

~/keras/
├── memory.md          # Preferred architectures, hyperparams
└── models/            # Saved model configs (optional)

Quick Reference

Topic File
Setup process setup.md
Memory template memory-template.md
Layer patterns layers.md
Training diagnostics training.md
Common architectures architectures.md

Core Rules

1. Sequential vs Functional API

  • Sequential: simple stacks, no branching
  • Functional: multi-input/output, skip connections, shared layers
  • Subclassing: custom forward pass, dynamic architectures
# Sequential - simple stack
model = keras.Sequential([
    layers.Dense(64, activation='relu'),
    layers.Dense(10, activation='softmax')
])

# Functional - flexible graphs
inputs = keras.Input(shape=(784,))
x = layers.Dense(64, activation='relu')(inputs)
outputs = layers.Dense(10, activation='softmax')(x)
model = keras.Model(inputs, outputs)

2. Input Shape Patterns

  • First layer needs input_shape (exclude batch)
  • Images: (height, width, channels) for channels_last
  • Sequences: (timesteps, features)
  • Tabular: (features,)
# Image input
layers.Conv2D(32, 3, input_shape=(224, 224, 3))

# Sequence input
layers.LSTM(64, input_shape=(100, 50))  # 100 timesteps, 50 features

# Tabular input
layers.Dense(64, input_shape=(20,))  # 20 features

3. Activation Functions

Task Output Activation Loss
Binary classification sigmoid binary_crossentropy
Multi-class softmax categorical_crossentropy
Multi-label sigmoid binary_crossentropy
Regression linear (none) mse or mae

4. Regularization Stack

Apply in this order for overfitting:

  1. Dropout - after dense/conv layers (0.2-0.5)
  2. BatchNorm - before or after activation
  3. L2 regularization - in layer (0.01-0.001)
  4. Early stopping - callback with patience
layers.Dense(64, activation='relu', kernel_regularizer=keras.regularizers.l2(0.01))
layers.Dropout(0.3)
layers.BatchNormalization()

5. Callbacks Essentials

callbacks = [
    keras.callbacks.EarlyStopping(
        monitor='val_loss', patience=5, restore_best_weights=True
    ),
    keras.callbacks.ModelCheckpoint(
        'best_model.keras', save_best_only=True
    ),
    keras.callbacks.ReduceLROnPlateau(
        monitor='val_loss', factor=0.5, patience=3
    ),
    keras.callbacks.TensorBoard(log_dir='./logs')
]

6. Data Pipeline

# tf.data for performance
dataset = tf.data.Dataset.from_tensor_slices((x, y))
dataset = dataset.shuffle(10000).batch(32).prefetch(tf.data.AUTOTUNE)

# ImageDataGenerator for augmentation
datagen = keras.preprocessing.image.ImageDataGenerator(
    rotation_range=20,
    horizontal_flip=True,
    validation_split=0.2
)

7. Compile Checklist

model.compile(
    optimizer=keras.optimizers.Adam(learning_rate=0.001),
    loss='categorical_crossentropy',
    metrics=['accuracy']
)
  • Learning rate: start 0.001, reduce on plateau
  • Batch size: 32-128 typical, larger = smoother gradients

Common Traps

  • Input shape mismatch → check data shape vs model input_shape, exclude batch dim
  • Loss is NaN → reduce learning rate, check for inf/nan in data, add gradient clipping
  • Validation loss diverges → add regularization, reduce model capacity, more data
  • Model not learning → check labels are correct, verify loss function matches task
  • GPU OOM → reduce batch size, use mixed precision, gradient checkpointing
  • Slow training → use tf.data pipeline with prefetch, enable XLA compilation

External Endpoints

Endpoint Data Sent Purpose
TensorFlow model hub None (download only) Pretrained weights when using weights='imagenet'

Note: Transfer learning examples download pretrained weights on first use. Use weights=None for fully offline operation.

Security & Privacy

Data that stays local:

  • Model architectures and configs in ~/keras/
  • Training preferences and hyperparameters

This skill does NOT:

  • Upload models or data anywhere
  • Access files outside ~/keras/ and working directory
  • Store training data

Related Skills

Install with clawhub install <slug> if user confirms:

  • tensorflow — TensorFlow operations and deployment
  • pytorch — Alternative deep learning framework
  • ai — General AI and ML patterns
  • models — Model architecture design

Feedback

  • If useful: clawhub star keras
  • Stay updated: clawhub sync