Time_embedding采样的理解

简单概括,就是t越大,采样得到的点越分散,采样得到的点范围更广
一个简单的示例函数

def time_embedding(t, max_steps=1000):
       frequency = np.linspace(0, 1, max_steps)
       embeddings = np.concatenate([
           np.sin(frequency * t * math.pi),
           np.cos(frequency * t * math.pi)
       ])
       return embeddings

不同的时间步t影响的是采样的范围,时间步t越大,采样的周期越广泛,最后得到的采样的情况不同
一个简单的实例函数如下

import numpy as np
import matplotlib.pyplot as plt



def draw_sample(test_t):
    '''
    t为采样时间步
    '''
    # 设置最大的时间步数
    max_steps = 1000

    # 生成不同的时间步t的值
    # t_values = [10, 50, 100]  # 示例时间步,您可以根据需要修改这些值
    t_values = [test_t]

    # 生成频率序列
    frequency = np.linspace(0, 1, max_steps)

    # 创建图像
    plt.figure(figsize=(14, 7))

    # 画出正弦和余弦函数的图像
    x_values = np.linspace(-2 * 10 * np.pi , 2 * 10 * np.pi , 100000)
    plt.plot(x_values, np.sin(x_values), label='sin(x)')
    plt.plot(x_values, np.cos(x_values), label='cos(x)')
    # 为每个时间步t描绘数据点
    for t in t_values:
        # 计算当前t的正弦和余弦值
        sin_values = np.sin(frequency * t * np.pi)
        cos_values = np.cos(frequency * t * np.pi)
        
        # 生成横坐标
        x_coords = frequency * t * np.pi
        
        # 在正弦图像上描点
        plt.scatter(x_coords, sin_values, label=f'sin points for t={t}')
        
        # 在余弦图像上描点
        plt.scatter(x_coords, cos_values, label=f'cos points for t={t}')

    # 显示图例
    plt.legend()

    # 显示图像
    plt.show()
     
draw_sample(1)
draw_sample(5)
draw_sample(20)
draw_sample(100)

t=1的采样情况
在这里插入图片描述

t=5的采样情况
在这里插入图片描述

t=20的采样情况
在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值