小编Mus*_*ser的帖子

通过使用 TimeDistributed 堆叠 Convolution2D 和 LSTM 层来理解 ConvLSTM2D 以获得相似的结果

我有 950 个训练视频样本和 50 个测试视频样本。每个视频样本有 10 帧,每帧的形状为 (n_row=28, n_col=28, n_channels=1)。我的输入 (x) 和输出 (y) 具有相同的形状。

x_train 形状: (950, 10, 28, 28,1),

y_train 形状:(950, 10, 28, 28,1),

x_test 形状:(50, 10, 28, 28,1),

y_test 形状:(50, 10, 28, 28,1)。

我想将输入视频样本 (x) 作为输入到我的模型以预测输出视频样本 (y)。

到目前为止,我的模型是:

from keras.layers import Dense, Dropout, Activation, LSTM
from keras.layers import Convolution2D, MaxPooling2D, Flatten, Reshape
from keras.models import Sequential
from keras.layers.wrappers import TimeDistributed

import numpy as np
########################################################################################
model = Sequential()

model.add(TimeDistributed(Convolution2D(16, (3, 3), padding='same'), input_shape=(None, 28, 28, 1))) 
model.add(Activation('sigmoid'))
model.add(TimeDistributed(MaxPooling2D(pool_size=(2, …
Run Code Online (Sandbox Code Playgroud)

python conv-neural-network lstm keras

6
推荐指数
0
解决办法
2264
查看次数

如何使用该列周围(顶部和底部)值的平均值来填充该列的 NaN 值?

我有一个 df ,它有一些 NaN 值。例如,这里是 df:

import numpy as np
import pandas as pd

np.random.seed(100)
data = np.random.rand(10,3)
data[3,0] = np.NaN
data[6,0] = np.NaN

data[5,1] = np.NaN
data[7,1] = np.NaN

data[1,2] = np.NaN
data[8,2] = np.NaN
data[6,2] = np.NaN

df = pd.DataFrame(data)
df
Run Code Online (Sandbox Code Playgroud)

这是上面代码的运行结果:

    0           1           2
0   0.543405    0.278369    0.424518
1   0.844776    0.004719    NaN
2   0.670749    0.825853    0.136707
3   NaN         0.891322    0.209202
4   0.185328    0.108377    0.219697
5   0.978624    NaN         0.171941
6   NaN         0.274074    NaN
7   0.940030    NaN         0.336112
8 …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

在 keras 后端的 K.sum 中,axis=[1,2,3] 是什么意思?

我正在尝试为我的 CNN 模型实现自定义损失函数。我找到了一个IPython notebook,它实现了一个名为Dice的自定义损失函数,如下:

from keras import backend as K
smooth = 1.

def dice_coef(y_true, y_pred, smooth=1):
    intersection = K.sum(y_true * y_pred, axis=[1,2,3])
    union = K.sum(y_true, axis=[1,2,3]) + K.sum(y_pred, axis=[1,2,3])
    return K.mean( (2. * intersection + smooth) / (union + smooth), axis=0)

def bce_dice(y_true, y_pred):
    return binary_crossentropy(y_true, y_pred)-K.log(dice_coef(y_true, y_pred))

def true_positive_rate(y_true, y_pred):
    return K.sum(K.flatten(y_true)*K.flatten(K.round(y_pred)))/K.sum(y_true)

seg_model.compile(optimizer = 'adam', 
              loss = bce_dice, 
              metrics = ['binary_accuracy', dice_coef, true_positive_rate])
Run Code Online (Sandbox Code Playgroud)

我之前从未使用过 keras 后端,并且真的对 keras 后端的矩阵计算感到困惑。所以,我创建了一些张量来查看代码中发生了什么:

val1 = np.arange(24).reshape((4, 6))
y_true = K.variable(value=val1)

val2 …
Run Code Online (Sandbox Code Playgroud)

python conv-neural-network keras tensorflow

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

如何从 django.contrib.gis.gdal.GDALRaster 对象创建 gdal.Dataset 或 xarray.Dataset 对象?

我正在一个 Django 项目中工作,我试图从我的数据库中获取所有栅格数据。

这是我在 models.py 中的模型

from django.contrib.gis.db import models
class RasterWithName(models.Model):
    raster = models.RasterField()
    name = models.TextField()
Run Code Online (Sandbox Code Playgroud)

这是我用来从 django 的 shell 中的数据库中获取所有行的方法。

首先我必须做一个python manage.py shell然后运行下面的代码,一个接一个:

all_objects = RasterWithName.objects.all()
first_object_in_database = all_objects[0]
print(first_object_in_database)
Run Code Online (Sandbox Code Playgroud)

它打印:

RasterWithName object (1)
Run Code Online (Sandbox Code Playgroud)

此外,运行以下行,

print(type(first_object_in_database))
Run Code Online (Sandbox Code Playgroud)

印刷:

<class 'geo.models.RasterWithName'>
Run Code Online (Sandbox Code Playgroud)

然后我运行下面的两行:

raster = first_object_in_database.raster
print(type(raster))
Run Code Online (Sandbox Code Playgroud)

哪个打印:

<class 'django.contrib.gis.gdal.raster.source.GDALRaster'>
Run Code Online (Sandbox Code Playgroud)

如何将此GDALRaster对象转换为更知名的对象,例如gdal Dataset(可以像这样导入:)from osgeo.gdal import Datasetxarray Dataset(可以像这样导入:)from xarray import Dataset

############################################### ###

编辑?#1:

############################################### ###

感谢Val,这是一个有效的解决方案:

all_objects …
Run Code Online (Sandbox Code Playgroud)

python django gdal geodjango python-xarray

5
推荐指数
0
解决办法
224
查看次数

导入错误:无法导入名称“PowerTransformer”

每当我尝试运行代码时

import matplotlib.pyplot as plt

from sklearn.preprocessing import PowerTransformer
ptt = PowerTransformer()
plt.plot(ptt.fit(df))
Run Code Online (Sandbox Code Playgroud)

出现此错误:

ImportError: cannot import name 'PowerTransformer'
Run Code Online (Sandbox Code Playgroud)

我的 scikit-learn 当前版本是 0.19.1

出现这个错误的原因是什么?

python scikit-learn

4
推荐指数
1
解决办法
4729
查看次数

如何在pandas df上使用这个工作正则表达式(re)来删除冗余的非数字字符,星号(*)?

通过使用下面的代码,我可以使用re来更改这样的字符串:*12.2到这样的浮点数12.2:

import re
numeric_const_pattern = '[-+]? (?: (?: \d* \. \d+ ) | (?: \d+ \.? ) )(?: [Ee] [+-]? \d+ ) ?'
rx = re.compile(numeric_const_pattern, re.VERBOSE)
print('converted string to float number is', float(rx.findall("*12.2")[0]))

converted string to float number is 12.2
Run Code Online (Sandbox Code Playgroud)

但是我有一只熊猫df,它是:

df = pd.DataFrame([[10, '*41', '-0.01', '2'],['*10.5', 54, 34.2, '*-0.076'], 
                        [65, -32.01, '*344.32', 0.01], ['*32', '*0', 5, 43]])


       0         1         2          3
0      10       *41      -0.01        2
1     *10.5      54       34.2      *-0.076
2 …
Run Code Online (Sandbox Code Playgroud)

python regex pandas

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

如何对预测值进行反向移动平均(在熊猫中,滚动()。均值)操作?

我有一个这样的 df:

import numpy as np
import pandas as pd
import matplotlib.pylab as plt
np.random.seed(100)
data = np.random.rand(200,3)

df = pd.DataFrame(data)
df.columns = ['a', 'b', 'y']

df['y_roll'] = df['y'].rolling(10).mean()
df['y_roll_predicted'] = df['y_roll'].apply(lambda x: x + np.random.rand()/20)
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,我创建了一个随机的 pandas df。然后用于rolling(10).mean()执行一个moving averageondf['y']并将其保存为df['y_roll'].

情节df['y']如下: y 的图

因为我的模型无法预测 的尖​​锐边缘df['y'],所以我决定对其进行滚动.mean() 操作并尝试预测滚动数据df['y_roll']。现在我的模型能够预测df['y_roll'],它的名字是:df['y_roll_predicted'].

如何在此预测列上执行滚动操作的反向操作,以便将其与df['y']值进行比较?

df['y_roll_predicted']vs的情节df['y_roll']如下: 在此处输入图片说明

python moving-average pandas

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