小编vam*_*tap的帖子

如何在pandas groupby中创建具有重复键的组?

我想要做的是根据最后一列(键)创建组,以便在第一组中我获得例如第1行.对于第二组,我获得第1行和第2列.在第3组中,我得到最后一列两排.

我尝试用pandas groupby方法做到这一点,grouped = df1.groupby('Key')但正如预期的那样它只返回2组.

df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3','A4'],
   ...:                     'B': ['B0', 'B1', 'B2', 'B3', 'B4'],
   ...:                     'C': ['C0', 'C1', 'C2', 'C3', 'C4'],
   ...:                     'D': ['D0', 'D1', 'D2', 'D3', 'D4'],
                            'Key': ['K0', 'K1', 'K1', 'K0', 'K0']},
   ...:                     index=[0, 1, 2, 3, 4])


df1
Out[89]: 
    A   B   C   D Key
0  A0  B0  C0  D0  K0
1  A1  B1  C1  D1  K1
2  A2  B2  C2  D2  K1
3  A3  B3  C3  D3  K0
4  A4 …
Run Code Online (Sandbox Code Playgroud)

python pandas

7
推荐指数
1
解决办法
300
查看次数

如何通过 Pytorch __init__ 中的循环定义多个层?

我正在尝试在 Pytorch 中定义一个多任务模型,其中我需要一组不同的层来执行不同的任务。我在定义层时遇到问题,特别是如果我使用 for 循环在列表中存储不同的层,那么我会从优化器中收到一个错误,指出 model.parameters() 是一个空列表,事实上它是空列表。

\n\n

以下是代码:

\n\n
x_trains=[]\ny_trains=[]\n\nnum_tasks=2\nfor i in range(num_tasks):\n    x_trains.append(torch.from_numpy(np.random.rand(100,1,50)).float())\n    y_trains.append(torch.from_numpy(np.array([np.random.randint(10) for i in range(100)])).long())\nnb_classes=10\n\nclass Net(torch.nn.Module):\ndef __init__(self):\n    super(Net, self).__init__()\n\n    self.all_task_layers=[]\n    for i in range(num_tasks):\n        self.all_task_layers.append(nn.Conv1d(1, 128, 8))\n        self.all_task_layers.append(nn.BatchNorm1d(128))\n        self.all_task_layers.append(nn.Conv1d(128, 256, 5))\n        self.all_task_layers.append(nn.BatchNorm1d(256))\n        self.all_task_layers.append(nn.Conv1d(256, 128, 3))\n        self.all_task_layers.append(nn.BatchNorm1d(128))\n        self.all_task_layers.append(nn.Linear(128, nb_classes))\n    #self.dict_layers_for_tasks[i][1]        \n    self.all_b1s=[]\n    self.all_b2s=[]\n    self.all_b3s=[]\n    self.all_dense1s=[]\n\ndef forward(self, x_num_tasks): \n    for i in range(0,len(self.all_task_layers),num_tasks):\n        self.all_b1s.append(F.relu(self.all_task_layers[i+1](self.all_task_layers[i+0](x_num_tasks[i]))))\n\n    for i in range(0,len(self.all_task_layers),num_tasks):\n        self.all_b2s.append(F.relu(self.all_task_layers[i+3](self.all_task_layers[i+2](self.all_b1s[i]))))\n\n    for i in range(0,len(self.all_task_layers),num_tasks):\n        self.all_b3s.append(F.relu(self.all_task_layers[i+5](self.all_task_layers[i+4](self.all_b2s[i]))))\n\n    for i in range(0,len(self.all_task_layers),num_tasks):\n        self.all_dense1s.append(self.all_task_layers[i+6](self.all_b3s[i]))\n\n    return self.all_dense1s       \n\nmodel = Net()\ncriterion = nn.CrossEntropyLoss()\noptimizer = …
Run Code Online (Sandbox Code Playgroud)

python pytorch

6
推荐指数
1
解决办法
7179
查看次数

标签 统计

python ×2

pandas ×1

pytorch ×1