首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在特定列数的tensorflow数据集中找到最大值?

如何在特定列数的tensorflow数据集中找到最大值?
EN

Stack Overflow用户
提问于 2021-11-05 09:27:22
回答 1查看 109关注 0票数 0

假设下面的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import tensorflow as tf
import numpy as np
 
simple_data_samples = np.array([
         [1, 1, 1, 7, -1],
         [2, -2, 2, -2, -2],
         [3, 3, 3, -3, -3],
         [-4, 4, 4, -4, -4],
         [5, 5, 5, -5, -5],
         [6, 6, 6, -4, -6],
         [7, 7, 8, -7, -7],
         [8, 8, 8, -8, -8],
         [9, 4, 9, -9, -9],
         [10, 10, 10, -10, -10],
         [11, 5, 11, -11, -11],
         [12, 12, 12, -12, -12],
])


def print_dataset(ds):
    for inputs, targets in ds:
        print("---Batch---")
        print("Feature:", inputs.numpy())
        print("Label:", targets.numpy())
        print("")
 
    
def timeseries_dataset_multistep_combined(features, label_slice, input_sequence_length, output_sequence_length, sequence_stride, batch_size):
    feature_ds = tf.keras.preprocessing.timeseries_dataset_from_array(features, None, sequence_length=input_sequence_length + output_sequence_length, sequence_stride=sequence_stride ,batch_size=batch_size, shuffle=False)
     
    def split_feature_label(x):
        return x[:, :input_sequence_length, :]+ tf.reduce_max(x[:,:,:],axis=1), x[:, input_sequence_length:, label_slice]+ tf.reduce_max(x[:,:,:],axis=1)
         
    feature_ds = feature_ds.map(split_feature_label)
     
    return feature_ds
 
ds = timeseries_dataset_multistep_combined(simple_data_samples, slice(None, None, None), input_sequence_length=4, output_sequence_length=2, sequence_stride=2, batch_size=1)
print_dataset(ds)

让我解释一下上面的代码是做什么的。它创建了许多特征和标签。然后,它从每列中获取最大值,并将其添加到该列中的各个值中。例如,此功能及其对应的标签:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Feature: [[[ 1  1  1  7 -1]
  [ 2 -2  2 -2 -2]
  [ 3  3  3 -3 -3]
  [-4  4  4 -4 -4]]]
Label: [[[ 5  5  5 -5 -5]
  [ 6  6  6 -4 -6]]]

在每列中设置以下最大值:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
6,6,6,7,-1

然后将最大值添加到相应的列,您将获得最终输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[[ 7  7  7 14 -2]
  [ 8  4  8  4 -3]
  [ 9  9  9  3 -4]
  [ 2 10 10  2 -5]]]
Label: [[[11 11 11  1 -6]
  [12 12 12  2 -7]]]

我希望从每个特征的前三列和后两列及其对应的标签中提取最大值,而不是从每列中提取最大值。在提取之后,我希望将最大值添加到相应列中的每个值。例如,在上面的示例中,前三列的最大值为6,后两列的最大值为7。之后,前三列的每个值加6,后两列的每个值加7。第一批的最终输出将如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Feature: [[[ 7  7  7  14 6]
  [ 8 4  8 5 5]
  [ 9  9  9 4 4]
  [ 2  10  10 3 3]]]
Label: [[[ 11  11  11 2 2]
  [ 12  12 12 3 1]]]

有没有人知道如何从每个批次的前三列和后两列中提取最大值?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-06 01:30:14

tf.reduce_max中使用这样的tf.tile是否适合您:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import tensorflow as tf
import numpy as np
 
simple_data_samples = np.array([
         [1, 1, 1, 7, -1],
         [2, -2, 2, -2, -2],
         [3, 3, 3, -3, -3],
         [-4, 4, 4, -4, -4],
         [5, 5, 5, -5, -5],
         [6, 6, 6, -4, -6],
         [7, 7, 8, -7, -7],
         [8, 8, 8, -8, -8],
         [9, 4, 9, -9, -9],
         [10, 10, 10, -10, -10],
         [11, 5, 11, -11, -11],
         [12, 12, 12, -12, -12],
])


def print_dataset(ds):
    for inputs, targets in ds:
        print("---Batch---")
        print("Feature:", inputs.numpy())
        print("Label:", targets.numpy())
        print("")
 
    
def timeseries_dataset_multistep_combined(features, label_slice, input_sequence_length, output_sequence_length, sequence_stride, batch_size):
    feature_ds = tf.keras.preprocessing.timeseries_dataset_from_array(features, None, sequence_length=input_sequence_length + output_sequence_length, sequence_stride=sequence_stride ,batch_size=batch_size, shuffle=False)
     
    def split_feature_label(x):
        reduced_first_max_columns = tf.reduce_max(x[:,:,:3], axis=1, keepdims=True) 
        reduced_last_max_columns = tf.reduce_max(x[:,:,3:], axis=1, keepdims=True)
        reduced_first_max_columns = tf.tile(tf.reduce_max(reduced_first_max_columns, axis=-1), [1, 3])
        reduced_last_max_columns = tf.tile(tf.reduce_max(reduced_last_max_columns, axis=-1), [1, 2])
        reduced_x = tf.expand_dims(tf.concat([reduced_first_max_columns, reduced_last_max_columns], axis=1), axis=0)
        
        return x[:, :input_sequence_length, :] + reduced_x, x[:, input_sequence_length:, label_slice] + reduced_x
         
    feature_ds = feature_ds.map(split_feature_label)
     
    return feature_ds
 
ds = timeseries_dataset_multistep_combined(simple_data_samples, slice(None, None, None), input_sequence_length=4, output_sequence_length=2, sequence_stride=2, batch_size=1)
print_dataset(ds)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
---Batch---
Feature: [[[ 7  7  7 14  6]
  [ 8  4  8  5  5]
  [ 9  9  9  4  4]
  [ 2 10 10  3  3]]]
Label: [[[11 11 11  2  2]
  [12 12 12  3  1]]]

---Batch---
Feature: [[[11 11 11 -6 -6]
  [ 4 12 12 -7 -7]
  [13 13 13 -8 -8]
  [14 14 14 -7 -9]]]
Label: [[[ 15  15  16 -10 -10]
  [ 16  16  16 -11 -11]]]
...
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69857097

复制
相关文章
漫画:如何在数组中找到和为 “特定值” 的三个数?
前一段时间,我们介绍了LeetCode上面的一个经典算法题【两数之和问题】。 这一次,我们把问题做一下扩展,尝试在数组中找到和为“特定值”的三个数。 题目的具体要求是什么呢?给定下面这样一个整型数组: 我们随意选择一个特定值,比如13,要求找出三数之和等于13的全部组合。 由于5+6+2=13, 5+1+7=13,3+9+1=13,所以最终的输出结果如下: 【5, 6,2】 【5, 1,7】 【3, 9,1】 小灰的思路,是把原本的“三数之和问题”,转化成求n次“两数之和问题”。 我们以上
腾讯NEXT学位
2020/10/14
2.4K0
将Excel特定某列数据删除
我们之前将表单内的某列数据分到新的excel文件里,那么如何批量将新Excel文件这一特定列进行删除呢?
繁华是客
2023/03/03
2K0
laravel 预加载特定的列
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/112351.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/08
7150
laravel 预加载特定的列
漫画:如何在数组中找到和为 “特定值” 的两个数?
什么意思呢?我们来举个例子,给定下面这样一个整型数组(题目假定数组不存在重复元素):
小灰
2020/10/09
3.1K0
漫画:如何在数组中找到和为 “特定值” 的两个数?
如何根据特定值找到IDOC
IDOC的官方名称叫Intermediate Document,用于两个模块,或者两个系统间交换信息。
用户5495712
2020/10/22
1.8K0
如何根据特定值找到IDOC
治数如治水,数据治理和数据创新难在哪?
数字经济时代,数据如水,滋润万物生长。数据治理则恰如治水,数据创新或数据泛滥均维系于此,重要性甚比数据本身。
大数据在线
2022/09/04
2670
治数如治水,数据治理和数据创新难在哪?
判断两数之间的最大值
判断两数之间的最大值 可直接利用Java自带的函数(abc 绝对值函数)再结合三元运算符实现 public class TestMax { public static void main(String[] args) { System.out.println(max(5,6)); } private static int max(int i, int j) { // TODO Auto-generated method stub // abc 绝对值函数 return
呆呆
2021/10/06
5640
根据表格特定列的内容来追加图标 原
(adsbygoogle = window.adsbygoogle || []).push({});
tianyawhl
2019/04/04
1.4K0
如何在 40 亿个非负整数中找到所有未出现的数?
所以,如果一个区间填不满,也就意味着这个区间缺少了数,我们把这些区间拿出来,再依次按照位图法的那一套处理下,就能得到这些区间中未出现的数。
飞天小牛肉
2022/04/11
4340
如何在 40 亿个非负整数中找到所有未出现的数?
TensorFlow 指标列,嵌入列
一般地,机器学习、深度学习 feed 进来的数据要求为数值型。如果某列取值为字符型,需要做数值转换,今天就来总结下 TensorFlow 中的指标列和嵌入列。
double
2018/07/25
1.4K0
TensorFlow 指标列,嵌入列
R语言:以多列标准筛选特定行
在本期,我们会运用一个病例数据为大家进行讲解示范,这也是大猫课堂第一次针对阅读者提问进行的反馈,也希望大家能提供一些有趣的问题,来和我们一起分享,同时也感谢读者孤鹜惜秋,与我们分享其问题。话不多说,马上进入正题。
用户7652506
2020/08/12
2K0
R语言:以多列标准筛选特定行
SQL如何只让特定列中只显示一行数据
我们如果在某个表里面,如何让其中某列的其中一行数据,只是显示一次呢? 示例表 StudentID Last_Name First_Name Gender GradeLevel Class Pupil_Email Relationship Pupil_Parent_Email 5013 Wang Zack M Grade 9 Senior SG9 B 5013@example.com 爸爸 5013a@qq.com 5013 Wang Zack M Grade 9 Senior SG9 B 5013@exam
繁华是客
2023/03/03
8.9K0
C++ 连接数据库的入口和获取列数、数据
林冠宏-指尖下的幽灵
2018/01/02
2.1K0
tensorflow | 随机数
使用tensorflow自带的随机种子函数来产生的随机数还是随机的,一脸尴尬。先介绍随机种子的使用。再来介绍随机函数。 ---- 随机种子 案例一 结果不一样 案例二 结果一样 随机函数 正态分布 截断正态分布 均匀分布 数据重排 例子 随机种子 案例一: 结果不一样 import tensorflow as tf b = tf.random_normal([1],seed = tf.set_random_seed(1234)) with tf.Session() as sees1: pri
努力在北京混出人样
2018/05/14
2K0
TensorFlow 返回tensor的 维数
  如果tensor是用调用tensorflow框架定义的,那么用 tensor_name.shape 即可返回tensorflow 的维数:
JNingWei
2018/09/28
5400
tensorflow | 随机数
使用tensorflow自带的随机种子函数来产生的随机数还是随机的,一脸尴尬。先介绍随机种子的使用。再来介绍随机函数。 ---- 随机种子 案例一 结果不一样 案例二 结果一样 随机函数 正态分布 截断正态分布 均匀分布 数据重排 例子 随机种子 案例一: 结果不一样 import tensorflow as tf b = tf.random_normal([1],seed = tf.set_random_seed(1234)) with tf.Session() as sees1:
努力在北京混出人样
2019/02/18
1.2K0
教程 | 如何在TensorFlow中高效使用数据集
选自TowardsDataScience 作者:Francesco Zuppichini 机器之心编译 处理并使用数据集是深度学习任务非常重要的组成部分。在本文中,作者 Francesco Zuppichini 将教你使用 TensorFlow 的内建管道向模型传递数据的方法,从此远离「feed-dict」。本文内容已更新至最新的 TensorFlow 1.5 版本。 相关代码地址:https://github.com/FrancescoSaverioZuppichini/Tensorflow-Datase
机器之心
2018/05/10
1.5K0
点击加载更多

相似问题

数据集中的列数

21

如何从tensorflow数据集中选择特定的列?

20

如何在pandas数据集中找到最大值

235

如何在python中获取数据集中的列数

11

从星火数据集中选择某些列和特定列的最大值

30
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文