- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不确定我的问题措辞是否正确,但要点如下:我正在使用的数据集 SVC 2004 有 x 个文件,每个文件都有 y 个 7 元组,因此数据集的形状变为 (x, y, 7)。我已经对数据进行了标准化,并将其插入一维 CNN 中进行特征提取,并插入 RNN 作为分类器。但问题是:每个文件的 y 永远不会相同。这会在创建顺序模型时导致问题,因为它需要恒定的形状。这是我的一些代码:
//DataPreprocessing
def load_dataset_normalized(path):
file_names = os.listdir(path)
num_of_persons = len(file_names)
initial_starting_point = np.zeros(np.shape([7]))
highest_num_of_points = find_largest_num_of_points(path)
x_dataset = []
y_dataset = []
current_file = 0
for infile in file_names:
full_file_name = os.path.join(path, infile)
file = open(full_file_name, "r")
file_lines = file.readlines()
num_of_points = int(file_lines[0])
x = []
y = []
time_stamp = []
button_status = []
azimuth_angles = []
altitude = []
pressure = []
for idx, line in enumerate(file_lines[1:]):
idx+=1
nums = line.split(' ')
if idx == 1:
nums[2] = 0
initial_starting_point = nums
x.append(float(nums[0]))
y.append(float(nums[1]))
time_stamp.append(0.0)
button_status.append(float(nums[3]))
azimuth_angles.append(float(nums[4]))
altitude.append(float(nums[5]))
pressure.append(float(nums[6]))
else:
x.append(float(nums[0]))
y.append(float(nums[1]))
time_stamp.append(10)
button_status.append(float(nums[3]))
azimuth_angles.append(float(nums[4]))
altitude.append(float(nums[5]))
pressure.append(float(nums[6]))
max_x = max(x)
max_y = max(y)
max_azimuth_angle = max(azimuth_angles)
max_altitude = max(altitude)
max_pressure = max(pressure)
min_x = min(x)
min_y = min(y)
min_azimuth_angle = min(azimuth_angles)
min_altitude = min(altitude)
min_pressure = min(pressure)
#Alignment normalization:
for i in range(num_of_points):
x[i] -= float(initial_starting_point[0])
y[i] -= float(initial_starting_point[1])
azimuth_angles[i] -= float(initial_starting_point[4])
altitude[i] -= float(initial_starting_point[5])
pressure[i] -= float(initial_starting_point[6])
#Size normalization
for i in range(num_of_points):
x[i] = ((x[i] - max_x) / (min_x - max_x))
y[i] = ((y[i] - max_y) / (min_y - max_y))
azimuth_angles[i] = ((azimuth_angles[i] - max_azimuth_angle) / (min_azimuth_angle - max_azimuth_angle))
altitude[i] = ((altitude[i] - max_altitude) / (min_altitude - max_altitude))
pressure[i] = ((pressure[i] - max_pressure) / (min_pressure - max_pressure))
#data points to dataset
x_line = []
for i in range (num_of_points):
x_line.append(([x[i], y[i], time_stamp[i], button_status[i], azimuth_angles[i], altitude[i], pressure[i]]))
if (num_of_points < 713) and (i == num_of_points-1):
for idx in range(713 - num_of_points):
x_line.append([0, 0, 0, 0, 0, 0, 0])
if i == num_of_points-1:
x_dataset.append(x_line)
current_file += 1
infile_without_extension = infile.replace('.TXT','')
index_of_s = infile_without_extension.find("S")
index_of_num = index_of_s + 1
sig_ID = int(infile_without_extension[index_of_num:])
if sig_ID < 21:
y_dataset.append([1,0])
else:
y_dataset.append([0,1])
x_dataset = np.array([np.array(xi) for xi in x_dataset])
y_dataset = np.asarray(y_dataset)
return x_dataset, y_dataset, highest_num_of_points
//Class that creates my model (creation of model works perfectly)
class crnn_model:
def build_model(self, input_shape_num, x_train, y_train, x_test, y_test):
model = Sequential()
model.add(Conv1D(filters=50, kernel_size=3, activation='sigmoid', input_shape = (713, 7)))
model.add(MaxPooling1D(pool_size=3))
model.add(LSTM(2))
model.compile(optimizer='adam', loss='mse', metrics = ['accuracy'])
model.summary()
print(model.fit(x_train, y_train, epochs=50, verbose=0))
yhat = model.predict(x_test, verbose=0)
print(yhat)
我考虑过使用具有最多 7 元组数量的文件作为形状,因为我现在已经使用上面的代码 (713) 进行了硬编码。这是一个好的选择吗?如果不是,我该如何“标准化”或“规范化”CNN 输入形状的点数 (y)?
最佳答案
这里指的是可变长度序列,可以通过输入input_shape=(None, 7)
来实现。这表示每个批处理的 y
可能会有所不同,但不会在批处理内发生变化。所以我们通过以下方式解决这个问题:
(batch_size, y_max_within_batch, 7)
.input_shape=(None, 7)
,以便在运行时您的模型可以接受不同长度的输入。这表示我会在每批中使用许多 7 元组。这些主要是在 Keras 中处理不同长度序列所需的工具/层。您如何使用它们以及填充的效果等取决于您要解决的任务。
关于python - 如何 "standardize"具有可变长度的数据集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57980344/
这是代码片段。 请说出这种用小内存存储大数据的算法是什么。 public static void main(String[] args) { long longValue = 21474836
所以我使用 imap 从 gmail 和 outlook 接收电子邮件。 Gmail 像这样编码 =?UTF-8?B?UmU6IM69zq3OvyDOtc68zrHOuc67IG5ldyBlbWFpb
很久以前就学会了 C 代码;想用 Scheme 尝试一些新的和不同的东西。我正在尝试制作一个接受两个参数并返回两者中较大者的过程,例如 (define (larger x y) (if (> x
Azure 恢复服务保管库有两个备份配置选项 - LRS 与 GRS 这是一个有关 Azure 恢复服务保管库的问题。 当其驻留区域发生故障时,如何处理启用异地冗余的恢复服务保管库?如果未为恢复服务启
说,我有以下实体: @Entity public class A { @Id @GeneratedValue private Long id; @Embedded private
我有下一个问题。 我有下一个标准: criteria.add(Restrictions.in("entity.otherEntity", getOtherEntitiesList())); 如果我的
如果这是任何类型的重复,我会提前申请,但我找不到任何可以解决我的具体问题的内容。 这是我的程序: import java.util.Random; public class CarnivalGame{
我目前正在使用golang创建一个聚合管道,在其中使用“$ or”运算符查询文档。 结果是一堆需要分组的未分组文档,这样我就可以进入下一阶段,找到两个数据集之间的交集。 然后将其用于在单独的集合中进行
是否可以在正则表达式中创建 OR 条件。 我正在尝试查找包含此类模式的文件名列表的匹配项 第一个案例 xxxxx-hello.file 或者案例二 xxxx-hello-unasigned.file
该程序只是在用户输入行数时创建菱形的形状,因此它有 6 个 for 循环; 3 个循环创建第一个三角形,3 个循环创建另一个三角形,通过这 2 个三角形和 6 个循环,我们得到了一个菱形,这是整个程序
我有一个像这样的查询字符串 www.google.com?Department=Education & Finance&Department=Health 我有这些 li 标签,它们的查询字符串是这样
我有一个带有静态构造函数的类,我用它来读取 app.config 值。如何使用不同的配置值对类进行单元测试。我正在考虑在不同的应用程序域中运行每个测试,这样我就可以为每个测试执行静态构造函数 - 但我
我正在寻找一个可以容纳多个键的容器,如果我为其中一个键值输入保留值(例如 0),它会被视为“或”搜索。 map, int > myContainer; myContainer.insert(make_
我正在为 Web 应用程序创建数据库,并正在寻找一些建议来对可能具有多种类型的单个实体进行建模,每种类型具有不同的属性。 作为示例,假设我想为“数据源”对象创建一个关系模型。所有数据源都会有一些共享属
(1) =>CREATE TABLE T1(id BIGSERIAL PRIMARY KEY, name TEXT); CREATE TABLE (2) =>INSERT INTO T1 (name)
我不确定在使用别名时如何解决不明确的列引用。 假设有两个表,a 和 b,它们都有一个 name 列。如果我加入这两个表并为结果添加别名,我不知道如何为这两个表引用 name 列。我已经尝试了一些变体,
我的查询是: select * from table where id IN (1,5,4,3,2) 我想要的与这个顺序完全相同,不是从1...5,而是从1,5,4,3,2。我怎样才能做到这一点? 最
我正在使用 C# 代码执行动态生成的 MySQL 查询。抛出异常: CREATE TABLE dump ("@employee_OID" VARCHAR(50)); "{"You have an er
我有日期 2016-03-30T23:59:59.000000+0000。我可以知道它的格式是什么吗?因为如果我使用 yyyy-MM-dd'T'HH:mm:ss.SSS,它会抛出异常 最佳答案 Sim
我有一个示例模式,它的 SQL Fiddle 如下: http://sqlfiddle.com/#!2/6816b/2 这个 fiddle 只是根据 where 子句中的条件查询示例数据库,如下所示:
我是一名优秀的程序员,十分优秀!