python3 -tensorflow-dataset 之map函数 lambda隐函数的应用
2024-10-07 12:17:34
###隐函数lanbda及map函数的应用实例
'''
lambda 参数1,参数2,参数3,...:表达式
'''
f = lambda x,y :x+y
print(f(1,2)) ###输出3
'''
map()接收一个函数f 和 一个Iterator(可迭代对象),并通过把函数f依次作用在Iterator的每一个元素上,并把结果做为新的Iterator返回
'''
a = [1,2,3]
b = map(lambda x:x*x ,a)
print(list(b)) ###输出[1,4,9] ##map 函数处理字典
c = {
'x':np.array([1,2,3]),
'y':[4,5,6]
}
##调用字典的key
d = map(lambda data:data*2,c)
print(list(d)) ##['xx', 'yy']
##调用字典的values
e = map(lambda data:data*2,c.values())
print(list(e)) ##[array([2, 4, 6]), [4, 5, 6, 4, 5, 6]] ##注意:列表*2重复一次,数组*2元素数字*2 def double(x):
return x*2
print(list(map(double,c))) ## ['xx', 'yy']
print(list(map(double,c.values()))) ##[array([2, 4, 6]), [4, 5, 6, 4, 5, 6]]
map函数和lambda函数
import tensorflow as tf
import numpy as np
##定义两个数组
x = np.arange(6)
y = np.arange(3,9)
##创建dataset数据集
dataset = tf.data.Dataset.from_tensor_slices({
'x':x,
'y':y
})
c = tf.data.Dataset.range(1,7)
def getone(dataset):
iterator = dataset.make_one_shot_iterator() #生成一个迭代器
one_element = iterator.get_next() #迭代器取值
return one_element
one_element1 = getone(dataset)
one_element2 = getone(c) #定义一个会话内调用的函数
def sess_get_one(one_element):
for i in range(6):
datav = sess.run(one_element)
print(datav)
#开启会话,调取数据
with tf.Session() as sess:
sess_get_one(one_element1)
sess_get_one(one_element2) '''
{'x': 0, 'y': 3}
{'x': 1, 'y': 4}
{'x': 2, 'y': 5}
{'x': 3, 'y': 6}
{'x': 4, 'y': 7}
{'x': 5, 'y': 8}
1
2
3
4
5
6
'''
字典类型的dataset数据集
import tensorflow as tf
import numpy as np
##定义两个数组
x = np.arange(6)
y = np.arange(3,9)
##创建dataset数据集
dataset = tf.data.Dataset.from_tensor_slices({
'x':x,
'y':y
})
dataset1 = dataset.map(lambda data:(data['x']*2,tf.cast(data['y'],tf.float32)))
c = tf.data.Dataset.range(1,7)
def getone(dataset):
iterator = dataset.make_one_shot_iterator() #生成一个迭代器
one_element = iterator.get_next() #迭代器取值
return one_element
one_element1 = getone(dataset)
one_element2 = getone(c)
one_element3 = getone(dataset1) #定义一个会话内调用的函数
def sess_get_one(one_element):
for i in range(6):
datav = sess.run(one_element)
print(datav)
#开启会话,调取数据
with tf.Session() as sess:
sess_get_one(one_element1)
sess_get_one(one_element2)
sess_get_one(one_element3)
'''
{'x': 0, 'y': 3}
{'x': 1, 'y': 4}
{'x': 2, 'y': 5}
{'x': 3, 'y': 6}
{'x': 4, 'y': 7}
{'x': 5, 'y': 8}
字典类型的dataset数据集,每取一个值都带着key 1
2
3
4
5
6
(0, 3.0)
(2, 4.0)
(4, 5.0)
(6, 6.0)
(8, 7.0)
(10, 8.0)
相当于数据变成了:{(0, 3.0),(2, 4.0),(4, 5.0),(6, 6.0),(8, 7.0),(10, 8.0)}
'''
最新文章
- Node.js之sails框架
- 嵌入式Linux驱动学习之路(二十三)NAND FLASH驱动程序
- Java 配色方案--Dark Flash Builder - by Wilson Silva
- saltapi中expr_form参数的使用
- 随堂笔记之正则与HTML5新元素
- C++ 初始化与赋值
- ios之UI中自定义cell
- SQL中and与or优先级比较
- log4net封装类 zz
- 4 weekend110的hdfs下载数据源码跟踪铺垫 + hdfs下载数据源码分析-getFileSystem(值得反复推敲和打断点源码)
- PHP Cookie学习
- 极简AWR报告收集指导
- Java Class类以及获取Class实例的三种方式
- 【LeetCode】【Python解读】Container with most water
- GitBash学习1
- 反射型 DDoS 攻击的原理和防范措施
- Linux入门(7)——Ubuntu16.04安装wps并解决系统缺失字体问题
- hive的常见判断与抽样函数
- 构建第一个SpringBoot工程
- 为帝国cms模板添加站内搜索小教程