有什么区别torch.optim.Adam(weight_decay=0.01)
和torch.optim.AdamW(weight_decay=0.01)
?
链接到文档:torch.optim
我使用张量进行转换,然后将其保存在列表中。稍后,我将使用它作为数据集Dataset
,最后DataLoader
训练我的模型。为此,我可以简单地使用:
l = [tensor1, tensor2, tensor3,...]
dataset = Dataset.TensorDataset(l)
dataloader = DataLoader(dataset)
Run Code Online (Sandbox Code Playgroud)
我想知道这样做的最佳实践是什么,以避免 RAM 溢出(如果大小增长)l
?类似的事情Iterator
可以避免吗?
我有一个如下所示的数据框:
指数 | 9 | 1 | 8 | 3 | 7 | 6 | 2 | 5 | 0 | 4 |
---|---|---|---|---|---|---|---|---|---|---|
0 | 32941 | 3545 | 2829 | 2423 | 1945年 | 1834年 | 1213 | 1205 | 1096 | 969 |
1 | 24352 | 2738 | 2666 | 2432 | 1388 | 7937 | 第682章 | 3539 | 2705 | 第1561章 |
2 | 第2137章 | 第1271章 | 2401 | 540 | 3906 | 第1446章 | 3432 | 24855 | 1885年 | 8127 |
我想使用 barplot 来绘制这些值,并使用索引作为色调。我怎样才能做到这一点?它可以是 matplotlib 或 seaborn 或任何工具,但我更喜欢前两个。
如果我使用 Keras 回调ModelCheckpoint
,并输入save_best_only = True
和period=3
,模型将如何保存?3 个周期后,它会保存该 3 个周期中的最佳结果,还是仅保存所有 epoch 中的最佳结果?
我使用的一段代码:
mcp = tf.keras.callbacks.ModelCheckpoint("my_model.h5", monitor="val_accuracy",
save_best_only=True, period=3)
Run Code Online (Sandbox Code Playgroud) 我有一个n
包含行和23
列(不包括索引)的 DataFrame。
首先我将它们分为X
和Y
:
Y = df.pop("Target").values
X = df.values # now X has 22 columns
Run Code Online (Sandbox Code Playgroud)
然后我用来train_test_split
分割它们:
X_tr, X_val, y_tr, y_val = train_test_split(X, Y)
Run Code Online (Sandbox Code Playgroud)
我将它们转换为Dataset
:
dataset = tf.data.Dataset.from_tensor_slices((X_tr, y_tr))
dataset = dataset.batch(32)
valid_ds = tf.data.Dataset.from_tensor_slices((X_val, y_val))
Run Code Online (Sandbox Code Playgroud)
问题是,当我创建模型时,我输入了错误input_shape
,如下所示:
def create_model():
tfkl = tf.keras.layers
inp = tf.keras.Input(shape=(None, 22))
x = tfkl.Dense(128, activation="linear")(inp)
x = tfkl.Dense(64, activation="linear")(x)
x = tfkl.Dense(1, activation="linear")(x)
model = tf.keras.models.Model(inp, x)
model.compile(loss="mae", optimizer="adam", metrics=["mae"])
return model …
Run Code Online (Sandbox Code Playgroud)