我有 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) 我有一个 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) 我正在尝试为我的 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) 我正在一个 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 Dataset或xarray Dataset(可以像这样导入:)from xarray import Dataset?
############################################### ###
编辑?#1:
############################################### ###
感谢Val,这是一个有效的解决方案:
all_objects …Run Code Online (Sandbox Code Playgroud) 每当我尝试运行代码时
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
出现这个错误的原因是什么?
通过使用下面的代码,我可以使用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) 我有一个这样的 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'],所以我决定对其进行滚动.mean() 操作并尝试预测滚动数据df['y_roll']。现在我的模型能够预测df['y_roll'],它的名字是:df['y_roll_predicted'].
如何在此预测列上执行滚动操作的反向操作,以便将其与df['y']值进行比较?
python ×7
pandas ×3
keras ×2
django ×1
gdal ×1
geodjango ×1
lstm ×1
regex ×1
scikit-learn ×1
tensorflow ×1