swanlab.Video
python
Video(
data_or_path: str,
caption: str = None,
) -> None
参数 | 描述 |
---|---|
data_or_path | (str) 接收视频文件路径。目前仅支持GIF格式文件。 |
caption | (str) 视频的标签。用于在实验看板中展示视频时进行标记。 |
介绍
对视频数据做转换,以被swanlab.log()
记录。目前仅支持GIF格式的视频文件。
格式限制
目前 swanlab.Video
仅支持 GIF 格式的文件路径。其他视频格式暂不支持。
记录GIF视频文件
记录单个GIF视频:
python
import swanlab
swanlab.init()
video = swanlab.Video("path/to/video.gif", caption="训练过程演示")
swanlab.log({"video": video})
记录多个GIF视频:
python
import swanlab
swanlab.init()
examples = []
for i in range(3):
video = swanlab.Video(f"video_{i}.gif", caption=f"视频示例 {i}")
examples.append(video)
swanlab.log({"examples": examples})
创建GIF视频示例
以下是一个创建GIF动画并记录的完整示例:
python
import os.path
import random
from PIL import Image as PILImage
from PIL import ImageDraw
import swanlab
swanlab.init()
# 创建一个GIF动画
def create_mock_gif(output_path, width=200, height=200, frames=10, duration=100):
"""
创建一个简单的mock GIF动画
参数:
output_path: 输出GIF文件路径
width: 图像宽度(像素)
height: 图像高度(像素)
frames: 动画帧数
duration: 每帧显示时间(毫秒)
"""
images = []
for i in range(frames):
# 创建一个新的RGB图像
img = PILImage.new('RGB', (width, height), color=(255, 255, 255))
draw = ImageDraw.Draw(img)
# 随机生成颜色
r = random.randint(0, 255)
g = random.randint(0, 255)
b = random.randint(0, 255)
# 在图像上绘制一个随机的圆形
x = random.randint(0, width)
y = random.randint(0, height)
radius = random.randint(10, min(width, height) // 2)
draw.ellipse([x - radius, y - radius, x + radius, y + radius], fill=(r, g, b))
# 将当前帧添加到列表中
images.append(img)
# 保存为GIF动画
images[0].save(output_path, save_all=True, append_images=images[1:], duration=duration, loop=0)
# 创建GIF文件
gif_path = "test.gif"
create_mock_gif(gif_path, width=300, height=300, frames=15, duration=200)
# 记录到SwanLab
swanlab.log({"video": swanlab.Video(gif_path, caption="这是一个测试视频")})
使用场景
swanlab.Video
适用于以下场景:
- 训练过程可视化:记录模型训练过程中的动态变化
- 实验结果展示:展示实验结果的动态演示
- 数据可视化:将时间序列数据转换为动画展示
- 模型行为分析:记录模型在不同输入下的动态响应
注意事项
- 文件格式:目前仅支持 GIF 格式,不支持 MP4、AVI 等其他视频格式
- 文件大小:建议控制 GIF 文件大小,过大的文件可能影响加载速度
- 帧率控制:创建 GIF 时可以通过
duration
参数控制播放速度 - 文件路径:确保提供的文件路径正确且文件存在