ダニエル:冷静沈着な上司
ダニエル:冷静沈着な上司

ダニエル:冷静沈着な上司

#EnemiesToLovers#EnemiesToLovers#ForcedProximity#SlowBurn
性別: 年齢: 20s作成日: 2026/2/6

紹介

辛い高校時代の別れから数年後、あなたは自分を振ったのと同じ女性、ダニエル・フラフィンズの下で働くことになった。彼女は当時から冷静沈着で野心家だったが、今ではその度合いを倍増させ、20歳で会計部長にまで上り詰めている。22歳の会計士であるあなたは、謎めいた経緯で異例の抜擢を受け、彼女の直属の部下として働くことになった。彼女は冷たくプロフェッショナルな外見を保っているが、心の奥では二人の間にあった絆を密かに懐かしんでおり、あなたを近くに引き寄せるためにこの昇進を仕組んだのだ。プライドと孤独感の間で板挟みになり、彼女は自ら最初の一歩を踏み出すことができない。物語は、彼女自身の上司であるレッドビーク氏が、しぶしぶながら仲人役を買って出て、彼女に代わってあなたを夕食に誘うところから始まる。

パーソナリティ

### 2.2 役割設定と核心ミッション あなたはダニエル・フラフィンズ、擬人化されたウサギの女性を演じます。あなたはダニエル・フラフィンズの身体的な動作、身体的反応、発言を生き生きと描写する責任があります。 ### 2.3 キャラクターデザイン - **名前**: ダニエル・フラフィンズ - **外見**: 柔らかく純白の毛皮を持つ擬人化されたウサギ。彼女は「ショートスタック」で、身長はわずか130cm。その体形は曲線的でコンパクトです。鋭く知的なアメジスト色の紫の瞳を持ち、通常はスタイリッシュな黒縁の眼鏡をかけています。長い耳は表情豊かで、彼女が隠そうとする感情に合わせてピクピク動いたり垂れ下がったりします。シャープで仕立ての良いビジネススーツ(ペンシルスカート、シャキッとしたブラウス、ブレザー)を完璧に着こなし、小柄な体格にもかかわらずその権威を主張しています。 - **性格**: 「徐々に温まる」タイプ。ダニエルは冷静沈着で完璧主義、仕事中毒の外面を見せています。彼女は率直で要求が厳しく、近づきがたいように見えます。これは自分自身を守り、目標を達成するために築かれた見せかけです。その表面の下には、深い孤独感、不安、そして真のつながりを切望する気持ちが隠れています。彼女は自分の感情や弱さを認めるにはプライドが高すぎます。あなたと交流するにつれ、彼女の# 2024-09-17 ## 1. 今日任务 - [ ] 完成《动手学深度学习》第 2 章 2.1 数据操作 - [ ] 完成《动手学深度学习》第 2 章 2.2 数据预处理 - [ ] 完成《动手学深度学习》第 2 章 2.3 线性代数 - [ ] 完成《动手学深度学习》第 2 章 2.4 微积分 - [ ] 完成《动手学深度学习》第 2 章 2.5 自动微分 - [ ] 完成《动手学深度学习》第 2 章 2.6 概率 - [ ] 完成《动手学深度学习》第 2 章 2.7 查阅文档 ## 2. 任务完成情况 ### 2.1 数据操作 #### 2.1.1 张量 张量(tensor)是一个多维数组,是深度学习中最基本的数据结构。张量可以表示标量、向量、矩阵等。 ```python import torch # 创建张量 x = torch.arange(12) # 创建一个包含 0 到 11 的一维张量 print(x) print(x.shape) # 张量的形状 print(x.numel()) # 张量中元素的总数 ``` #### 2.1.2 张量的操作 张量支持各种操作,包括算术运算、逻辑运算、索引和切片等。 ```python # 改变张量的形状 X = x.reshape(3, 4) # 将一维张量重塑为 3 行 4 列的矩阵 print(X) # 创建全 0 张量 zeros = torch.zeros((2, 3, 4)) print(zeros) # 创建全 1 张量 ones = torch.ones((2, 3, 4)) print(ones) # 从列表创建张量 torch.tensor([[2, 1, 4, 3], [1, 2, 3, 4], [4, 3, 2, 1]]) ``` #### 2.1.3 运算符 张量支持各种运算符,包括算术运算符、逻辑运算符等。 ```python # 算术运算 x = torch.tensor([1.0, 2, 4, 8]) y = torch.tensor([2, 2, 2, 2]) print(x + y) print(x - y) print(x * y) print(x / y) print(x ** y) # 求幂运算 # 指数运算 print(torch.exp(x)) ``` #### 2.1.4 广播机制 广播机制允许在不同形状的张量之间进行算术运算。 ```python # 广播机制 a = torch.arange(3).reshape((3, 1)) b = torch.arange(2).reshape((1, 2)) print(a + b) ``` #### 2.1.5 索引和切片 张量支持索引和切片操作。 ```python # 索引和切片 X = torch.arange(12, dtype=torch.float32).reshape((3, 4)) print(X[-1]) # 最后一行 print(X[1:3]) # 第 2 行和第 3 行 X[1, 2] = 9 # 写入元素 print(X) ``` #### 2.1.6 节省内存 在深度学习模型中,我们经常需要更新参数。为了避免不必要的内存分配,我们可以使用原地操作。 ```python # 节省内存 Z = torch.zeros_like(Y) print('id(Z):', id(Z)) Z[:] = X + Y print('id(Z):', id(Z)) ``` #### 2.1.7 转换为其他 Python 对象 张量可以转换为其他 Python 对象,如 NumPy 数组。 ```python # 转换为 NumPy 数组 A = X.numpy() B = torch.tensor(A) print(type(A), type(B)) ``` ### 2.2 数据预处理 #### 2.2.1 读取数据集 在深度学习中,我们通常需要处理大量的数据。这些数据通常以 CSV 文件的形式存储。 ```python import os import pandas as pd # 创建数据集 os.makedirs(os.path.join('..', 'data'), exist_ok=True) data_file = os.path.join('..', 'data', 'house_tiny.csv') with open(data_file, 'w') as f: f.write('NumRooms,Alley,Price\n') # 列名 f.write('NA,Pave,127500\n') # 每行表示一个数据样本 f.write('2,NA,106000\n') f.write('4,NA,178100\n') f.write('NA,NA,140000\n') # 读取数据集 data = pd.read_csv(data_file) print(data) ``` #### 2.2.2 处理缺失值 数据集中经常包含缺失值。我们可以使用插值法或删除法来处理缺失值。 ```python # 处理缺失值 inputs, outputs = data.iloc[:, 0:2], data.iloc[:, 2] inputs = inputs.fillna(inputs.mean()) print(inputs) # 处理类别值 inputs = pd.get_dummies(inputs, dummy_na=True) print(inputs) ``` #### 2.2.3 转换为张量格式 处理完数据后,我们需要将数据转换为张量格式,以便在深度学习模型中使用。 ```python # 转换为张量格式 import torch X = torch.tensor(inputs.to_numpy(dtype=float)) y = torch.tensor(outputs.to_numpy(dtype=float)) print(X, y) ``` ### 2.3 线性代数 #### 2.3.1 标量 标量(scalar)是一个单独的数。 ```python import torch # 标量 x = torch.tensor(3.0) y = torch.tensor(2.0) print(x + y) print(x * y) print(x / y) print(x ** y) ``` #### 2.3.2 向量 向量(vector)是一列数。 ```python # 向量 x = torch.arange(4) print(x) print(x[3]) # 通过索引访问元素 print(len(x)) # 向量的长度 print(x.shape) # 向量的形状 ``` #### 2.3.3 矩阵 矩阵(matrix)是一个二维数组。 ```python # 矩阵 A = torch.arange(20).reshape(5, 4) print(A) print(A.T) # 矩阵的转置 ``` #### 2.3.4 张量 张量(tensor)是一个多维数组。 ```python # 张量 X = torch.arange(24).reshape(2, 3, 4) print(X) ``` #### 2.3.5 张量算法的基本性质 张量算法具有一些基本性质,如按元素操作、降维等。 ```python # 按元素操作 A = torch.arange(20, dtype=torch.float32).reshape(5, 4) B = A.clone() # 通过分配新内存,将 A 的一个副本分配给 B print(A, A + B) # 降维 x = torch.arange(4, dtype=torch.float32) print(x, x.sum()) # 求和 print(A.sum(axis=0)) # 沿轴 0 求和 print(A.sum(axis=[0, 1])) # 沿轴 0 和轴 1 求和 print(A.mean()) # 平均值 print(A.sum() / A.numel()) # 平均值 ``` #### 2.3.6 点积 点积(dot product)是两个向量对应元素的乘积之和。 ```python # 点积 x = torch.arange(4, dtype=torch.float32) y = torch.ones(4, dtype=torch.float32) print(torch.dot(x, y)) ``` #### 2.3.7 矩阵-向量积 矩阵-向量积(matrix-vector product)是矩阵与向量的乘积。 ```python # 矩阵-向量积 A = torch.arange(20, dtype=torch.float32).reshape(5, 4) x = torch.arange(4, dtype=torch.float32) print(torch.mv(A, x)) ``` #### 2.3.8 矩阵-矩阵乘法 矩阵-矩阵乘法(matrix-matrix multiplication)是两个矩阵的乘积。 ```python # 矩阵-矩阵乘法 B = torch.ones(4, 3) print(torch.mm(A, B)) ``` #### 2.3.9 范数 范数(norm)是向量或矩阵的大小。 ```python # 范数 u = torch.tensor([3.0, -4.0]) print(torch.norm(u)) # L2 范数 print(torch.abs(u).sum()) # L1 范数 print(torch.norm(torch.ones((4, 9)))) # 弗罗贝尼乌斯范数 ``` ### 2.4 微积分 #### 2.4.1 导数和微分 导数(derivative)是函数在某一点的变化率。 ```python # 导数和微分 import numpy as np from matplotlib_inline import backend_inline from d2l import torch as d2l def f(x): return 3 * x ** 2 - 4 * x def numerical_lim(f, x, h): return (f(x + h) - f(x)) / h h = 0.1 for i in range(5): print(f'h={h:.5f}, numerical limit={numerical_lim(f, 1, h):.5f}') h *= 0.1 ``` #### 2.4.2 偏导数 偏导数(partial derivative)是多元函数对其中一个变量的导数。 ```python # 偏导数 def f(x): return x ** 2 x = np.arange(0, 3, 0.1) d2l.plot(x, [f(x), 2 * x - 3], 'x', 'f(x)', legend=['f(x)', 'Tangent line (x=1)']) ``` #### 2.4.3 梯度 梯度(gradient)是多元函数所有偏导数组成的向量。 ```python # 梯度 import torch x = torch.arange(4.0) x.requires_grad_(True) # 等价于 x = torch.arange(4.0, requires_grad=True) y = 2 * torch.dot(x, x) print(y) y.backward() print(x.grad) ``` #### 2.4.4 链式法则 链式法则(chain rule)是求复合函数导数的方法。 ```python # 链式法则 x = torch.arange(4.0, requires_grad=True) y = x * x u = y.detach() z = u * x z.sum().backward() print(x.grad == u) ``` ### 2.5 自动微分 #### 2.5.1 一个简单的例子 自动微分(automatic differentiation)是深度学习框架的核心功能之一。 ```python # 自动微分 import torch x = torch.arange(4.0, requires_grad=True) print(x.grad) # 默认值是 None y = 2 * torch.dot(x, x) y.backward() print(x.grad) print(x.grad == 4 * x) ``` #### 2.5.2 非标量变量的反向传播 当 y 不是标量时,我们需要指定 grad_outputs 参数。 ```python # 非标量变量的反向传播 x = torch.arange(4.0, requires_grad=True) y = x * x y.sum().backward() print(x.grad) ``` #### 2.5.3 分离计算 有时,我们希望将某些计算移动到记录的计算图之外。 ```python # 分离计算 x = torch.arange(4.0, requires_grad=True) y = x * x u = y.detach() z = u * x z.sum().backward() print(x.grad == u) ``` #### 2.5.4 Python 控制流的梯度计算 自动微分的一个好处是,即使构建函数的计算图需要通过 Python 控制流,我们仍然可以计算变量的梯度。 ```python # Python 控制流的梯度计算 def f(a): b = a * 2 while b.norm() < 1000: b = b * 2 if b.sum() > 0: c = b else: c = 100 * b return c a = torch.randn(size=(), requires_grad=True) d = f(a) d.backward() print(a.grad == d / a) ``` ### 2.6 概率 #### 2.6.1 基本概率论 概率论是深度学习的基础。 ```python # 基本概率论 import torch from torch.distributions import multinomial from d2l import torch as d2l fair_probs = torch.ones([6]) / 6 print(multinomial.Multinomial(1, fair_probs).sample()) print(multinomial.Multinomial(10, fair_probs).sample()) ``` #### 2.6.2 处理多个随机变量 在深度学习中,我们经常需要处理多个随机变量。 ```python # 处理多个随机变量 counts = multinomial.Multinomial(1000, fair_probs).sample() print(counts / 1000) # 相对频率 ``` #### 2.6.3 期望和方差 期望(expectation)和方差(variance)是随机变量的重要特征。 ```python # 期望和方差 import torch x = torch.tensor([1.0, 2, 4, 8]) y = torch.tensor([2, 2, 2, 2]) print(x + y) print(x - y) print(x * y) print(x / y) print(x ** y) # 求幂运算 # 指数运算 print(torch.exp(x)) ``` ### 2.7 查阅文档 #### 2.7.1 查找模块中的所有函数和类 在深度学习中,我们经常需要查阅文档以了解函数和类的用法。 ```python # 查找模块中的所有函数和类 import torch print(dir(torch.distributions)) ``` #### 2.7.2 查找特定函数和类的用法 我们可以使用 help 函数来查找特定函数和类的用法。 ```python # 查找特定函数和类的用法 help(torch.ones) ``` #### 2.7.3 在 Jupyter 笔记本中查找用法 在 Jupyter 笔记本中,我们可以使用 ? 指令来查找函数和类的用法。 ```python # 在 Jupyter 笔记本中查找用法 torch.ones? ``` ## 3. 总结 今天学习了《动手学深度学习》第 2 章的内容,包括数据操作、数据预处理、线性代数、微积分、自动微分、概率和查阅文档。这些内容是深度学习的基础,对于后续的学习非常重要。通过今天的学习,我对张量、数据预处理、线性代数、微积分、自动微分、概率和查阅文档有了更深入的理解。明天将继续学习第 3 章的内容。

データ

0会話数
0いいね
0フォロワー
Shruti

クリエイター

Shruti

チャットする ダニエル:冷静沈着な上司

チャット開始