相关疑难解决方法(0)

from_logits = True和from_logits = False获得针对UNet的tf.losses.CategoricalCrossentropy的不同训练结果

如果我Softmax Activation像这样设置最后一层,我正在用unet进行图像语义分割工作:

...
conv9 = Conv2D(n_classes, (3,3), padding = 'same')(conv9)
conv10 = (Activation('softmax'))(conv9)
model = Model(inputs, conv10)
return model
...
Run Code Online (Sandbox Code Playgroud)

然后使用即使只有一个训练图像loss = tf.keras.losses.CategoricalCrossentropy(from_logits=False) ,训练也不会收敛

但是,如果我没有Softmax Activation像这样设置最后一层:

...
conv9 = Conv2D(n_classes, (3,3), padding = 'same')(conv9)
model = Model(inputs, conv9)
return model
...
Run Code Online (Sandbox Code Playgroud)

然后使用loss = tf.keras.losses.CategoricalCrossentropy(from_logits=True) 训练将收敛为一个训练图像。

我的groundtruth数据集是这样生成的:

X = []
Y = []
im = cv2.imread(impath)
X.append(im)
seg_labels = np.zeros((height, width, n_classes))
for spath in segpaths:
    mask = cv2.imread(spath, 0)
    seg_labels[:, …
Run Code Online (Sandbox Code Playgroud)

python image-segmentation keras tensorflow tf.keras

6
推荐指数
3
解决办法
381
查看次数

用PyTorch预测网格坐标的顺序

在交叉验证中有一个类似的开放问题(尽管不是针对实现的,我希望这个问题能够解决,所以我认为它们都是有效的)。

我正在一个使用传感器监视人员GPS位置的项目。然后,坐标将转换为简单网格表示。我想尝试做的是记录用户的路线后,训练神经网络来预测下一个坐标,即采取下面的示例,其中用户重复只有两个随着时间的推移路线,首页- >一个首页- >乙

我想用不同长度的序列训练RNN / LSTM,例如(14,3), (13,3), (12,3), (11,3), (10,3), (9,3), (8,3), (7,3), (6,3), (5,3), (4,3), (3,3), (2,3), (1,3),然后我还想用不同长度的序列进行预测,例如对于这个示例路线

route = [(14,3), (13,3), (12,3), (11,3), (10,3)] //pseudocode
pred = model.predict(route)
Run Code Online (Sandbox Code Playgroud)

pred应该给我(9,3)(或者最好是更长的预测,例如((9,3), (8,3), (7,3), (6,3), (5,3), (4,3), (3,3), (2,3), (1,3)

如何将此类训练序列提供给下面标识的initforward操作?

self.rnn = nn.RNN(input_size, hidden_dim, n_layers, batch_first=True)
out, hidden = self.rnn(x, hidden)
Run Code Online (Sandbox Code Playgroud)

另外,整个路径应该是张量,还是路径内的每个坐标集都应该是张量?

在此处输入图片说明

machine-learning deep-learning lstm recurrent-neural-network pytorch

5
推荐指数
1
解决办法
206
查看次数

Pytorch 线性回归 1x1d,斜率始终错误

我在这里掌握了 pytorch,并决定实现非常简单的 1 对 1 线性回归,从身高到体重。

获得数据集: https: //www.kaggle.com/datasets/mustafaali96/weight-height,但任何其他数据集都可以。

让我们导入有关女性的库和信息:

import torch
from torch.utils.data import Dataset
from torch.utils.data import DataLoader
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
df = pd.read_csv('weight-height.csv',sep=',')
#https://www.kaggle.com/datasets/mustafaali96/weight-height
height_f=df[df['Gender']=='Female']['Height'].to_numpy()
weight_f=df[df['Gender']=='Female']['Weight'].to_numpy()
plt.scatter(height_f, weight_f, c ="red",alpha=0.1)
plt.show()
Run Code Online (Sandbox Code Playgroud)

这给出了测量的女性的良好分散性: 分配

到目前为止,一切都很好。

让我们制作数据加载器:

class Data(Dataset):
  def __init__(self, X: np.ndarray, y: np.ndarray) -> None:
    # need to convert float64 to float32 else
    # will get the following error
    # RuntimeError: expected scalar type Double but found Float …
Run Code Online (Sandbox Code Playgroud)

python numpy linear-regression pytorch

5
推荐指数
1
解决办法
429
查看次数