dataset相关知识
-
SDTM Exposure datasetSDTM Day 5: SDTM.EX Introduction: Exposure dataset contains the essence of subjects' treatment information, it is one of the key safety datasets, and it is critical to efficacy analysis. The EX domain is intended for "protocol-specified study treatments" including placebo dosing. The EX dataset would present a complete and accurate of subjects' exposure to the reviewers. SDTM.EX dataset building st
-
Tensorflow中的数据对象Dataset基础概念在tensorflow的官方文档是这样介绍Dataset数据对象的:Dataset可以用来表示输入管道元素集合(张量的嵌套结构)和“逻辑计划“对这些元素的转换操作。在Dataset中元素可以是向量,元组或字典等形式。另外,Dataset需要配合另外一个类Iterator进行使用,Iterator对象是一个迭代器,可以对Dataset中的元素进行迭代提取。看个简单的示例:#创建一个Dataset对象dataset = tf.data.Dataset.from_tensor_slices([1,2,3,4,5,6,7,8,9])#创建一个迭代器iterator = dataset.make_one_shot_iterator()#get_next()函数可以帮助我们从迭代器中获取元素element = iterator.get_next()#遍历迭代器,获取所有元素with tf.Session() as sess
-
快速理解Spark Dataset1. 前言RDD、DataFrame、Dataset是Spark三个最重要的概念,RDD和DataFrame两个概念出现的比较早,Dataset相对出现的较晚(1.6版本开始出现),有些开发人员对此还不熟悉,本文重点引领快速理解Dataset。带着几个问题去阅读:1、DataFrame比RDD有哪些优点?2、DataFrame和Dataset有什么关系?3、有了DataFrame为什么还有引入Dataset?4、Dataset在Spark源码中长什么样?注:本文的环境基于当前最新版本 Spark-2.1.12. RDD/DataFrame快速回顾RDD弹性分布式数据集,是Spark对数据进行的一种抽象,可以理解为Spark对数据的一种组织方式,更简单些说,RDD就是一种数据结构,里面包含了数据和操作数据的方法从字面上就能看出的几个特点:弹性:数据可完全放内存或完全放磁盘,也可部分存放在内存,部分存放在磁盘,并可以自动切换RDD出错后可自动重新计算(通过血缘自动容错)可checkpoint(设置检查点,用于容
-
1 Dataset-庖丁解牛之pytorch1 数据库基类用来实现数据的大小和索引。pytorch的Dataset类是一个抽象类,只先实现了三个魔法方法class Dataset(object): """An abstract class representing a Dataset. All other datasets should subclass it. All subclasses should override ``__len__``, that provides the size of the dataset, and ``__
dataset相关课程
dataset相关教程
- 3. 构建数据集 def load_image_train(data): input_image = tf.image.resize(data['image'], (128, 128)) input_mask = tf.image.resize(data['segmentation_mask'], (128, 128)) input_image, input_mask = normalize(input_image, input_mask) return input_image, input_maskdef load_image_test(data): input_image = tf.image.resize(data['image'], (128, 128)) input_mask = tf.image.resize(data['segmentation_mask'], (128, 128)) input_image, input_mask = normalize(input_image, input_mask) return input_image, input_masknum_examples = info.splits['train'].num_examplesBATCH = 64step_per_epch = num_examples // BATCHtrain = dataset['train'].map(load_image_train)test = dataset['test'].map(load_image_test)train_dataset = train.cache().shuffle(1000).batch(BATCH).repeat()test_dataset = test.batch(BATCH)在构建数据集函数之中,我们做了两件事情:将图像与标签重新调整大小到 [128, 128] ;将数据归一化。然后我们进行了分批的处理,这里取批次的大小为 64 ,大家可以根据自己的内存或现存大小灵活调整。
- 4. 具体的实现细节 首先我们和之前一样,进行数据的获取:import numpy as npimport pandas as pdimport tensorflow as tfx_train = pd.read_csv('https://storage.googleapis.com/tf-datasets/titanic/train.csv')x_test = pd.read_csv('https://storage.googleapis.com/tf-datasets/titanic/eval.csv')y_train = x_train.pop('survived')y_test = x_test.pop('survived')然后我们要定义连序列以及离散列:categories = ['sex', 'n_siblings_spouses', 'parch', 'class', 'deck', 'embark_town', 'alone']numeric = ['age', 'fare']然后我们就要定义特征列了:def one_hot_cat_column(feature_name, vocab): return tf.feature_column.indicator_column(tf.feature_column.categorical_column_with_vocabulary_list(feature_name, vocab))feature_columns = []for feature_name in categories: feature_columns.append(one_hot_cat_column(feature_name, x_train[feature_name].unique()))for feature_name in numeric: feature_columns.append(tf.feature_column.numeric_column(feature_name,dtype=tf.float32))在第一个 one_hot_cat_column 函数之中,我们对于特征列进行了独热编码。并且我们对于离散列与连续列进行了不同的处理。然后我们定义输入函数,这里我们仍然定义了两个输入函数,一个为训练使用,另一个为测试使用:def train_input_fn(x, y): dataset = tf.data.Dataset.from_tensor_slices((dict(x), y)) dataset = dataset.shuffle(len(y_train)).repeat().batch(32) return datasetdef test_input_fn(x, y): dataset = tf.data.Dataset.from_tensor_slices((dict(x), y)).batch(32) return datasettrain_input = lambda: train_input_fn(x_train, y_train)test_input = lambda: test_input_fn(x_test, y_eval)在这之后,我们便需要定义我们的提升树模型了:estimator = tf.estimator.BoostedTreesClassifier(feature_columns, n_batches_per_layer=len(y_train) // 32)这里的第一个参数 feature_columns 就是特征列,这个很好理解;关键是第二个参数,大家要记住的是, n_batches_per_layer 这个参数需要是样本的数量与批次大小的商,因为这里我们的批次大小为 32 ,因此我们设置其为 (y_train) // 32 。最后便是模型的训练了:estimator.train(train_input, max_steps=100)result = estimator.evaluate(test_input)print(pd.Series(result))于是我们可以的得到输出:accuracy 0.787879accuracy_baseline 0.625000auc 0.835384auc_precision_recall 0.825271average_loss 0.554901label/mean 0.375000loss 0.552625precision 0.747126prediction/mean 0.454899recall 0.656566global_step 100.000000dtype: float64于是我们可以得到了我们训练结果: 78% 的准确率。为了做对比,大家可以采用一个简单的线性分类器来做对比,也就是:tf.estimator.LinearClassifier(feature_columns)通过对比,大家就可以看到集成学习的优势。
- 2. 具体示例 首先我们需要获取数据集,和之前一样,为了方便,我们直接采用官方 API 进行数据集的获取:import tensorflow as tf(x_train, y_train), (x_test, y_test) = tf.keras.datasets.fashion_mnist.load_data()x_train, x_test = x_train / 255.0, x_test / 255.0通过上面的代码,我们便得到了数据集,同时对图片数据进行了归一化处理,也就是所将他们的数值规范化到 [0, 1] 之间。然后我们就需要定义我们的模型:model = tf.keras.models.Sequential([ tf.keras.layers.Flatten(input_shape=(28, 28)), tf.keras.layers.Dense(256, activation='relu'), tf.keras.layers.Dense(10, activation='softmax')])model.compile(loss=tf.keras.losses.SparseCategoricalCrossentropy(), optimizer='adam', metrics=['accuracy'])在这里我们使用了一个和之前一样的模型:第一层为一个扁平化层,将二维数据一维化;第二层为一个隐含层,其中包括256个隐含节点;最后一层为输出层,包含十个节点,因为我们的分类一共有10个。然后我们对模型进行了编译,我们采用的是 adam 优化器,因为我们是多分类任务,因此我们采用了 SparseCategoricalCrossentropy 损失函数。然后我们需要进行非常重要的一步:定义输入函数,在这里我们要定义两个输入函数,第一个为训练时的输入函数,另一个为测试时的输入函数。def train_input_fn(x_train, y_train): dataset = tf.data.Dataset.from_tensor_slices((x_train, y_train)) dataset = dataset.batch(16).repeat() return datasetdef test_input_fn(x_test, y_test): dataset = tf.data.Dataset.from_tensor_slices((x_test, y_test)) dataset = dataset.batch(16) return dataset在这里我们依然采用的是 tf.data.Dataset.from_tensor_slices 切片的方法来构建数据集,同时我们进行了分批处理,其中批次的大小为16,而对于训练集,我们进行了重复处理,因为我们的训练过程可能需要多次遍历数据集。然后我们便将我们创建的Keras模型转化为Estimator模型:keras_estimator = tf.keras.estimator.model_to_estimator(keras_model=model)仅仅需要一行代码,我们的Keras模型就转化为了 Estimator 模型,在这里我们仅仅使用了一个参数,那就是 keras_model 参数,其实该函数还包括几个非常有用的参数:keras_model_path:与 keras_model 互斥,也就是说不能与 keras_model 同时不为 None ,用来指定从磁盘上加载一个模型;model_dir:用来保存各种日志、参数、图表的目录;checkpoint_format:用来保存模型的格式。最后我们进行模型的训练与测试:keras_estimator.train(input_fn=lambda: train_input_fn(x_train, y_train), steps=5000)eval_result = keras_estimator.evaluate(input_fn=lambda: test_input_fn(x_test, y_test), steps=len(x_test)//16)print(eval_result)在这里,我们在训练的时候采用了一个参数 steps ,这个参数指明要训练多少个 batch_size (在这里是16 );因为在测试的时候我们只需要进行一次数据遍历,因此我们的 steps 设置为 len(x_test)//16 。举个例子,加入我们数据一共有 10 条,我们想要训练 20 个 epoch ,那么我们就需要设置 steps 为10*20=200 。而如果 steps 为 300 ,那我们的 epoch 就是 300 // 10 = 30 。而最后我们得到的 eval_result 是一个字典类型的对象,其中包含了 loss、step 以及我们定义的 metrics 等字段。最后在测试结束后我们可以得到结果为:INFO:tensorflow:Saving dict for global step 5000: accuracy = 0.8086, global_step = 5000, loss = 1.652609INFO:tensorflow:Saving 'checkpoint_path' summary for global step 5000: /tmp/tmptu8apzc8/model.ckpt-5000{'accuracy': 0.8086, 'loss': 1.652609, 'global_step': 5000}可以看到我们的模型最终达到了 0.8 的准确率,如果提升 steps ,我们便可以在一定程度上进一步提升准确率。
- 1.1 实践操作 AngularJS代码块的操作非常简单,大多数命令都是以ng-开头的,比如有:ng-click,ng-change,ng-bind 等等,按下tab就能生成对应代码,非常便捷。<div ng-switch-when="string"></div><div ng-bind="expression"></div><div ng-click="expression"></div><div ng-repeat="(key, value) in dataset"></div><div ng-bind="expression"></div><div ng-list="string"></div>...大多数情况下,我们记住ng2个字母即可。
- 2. 如何在 TensorFlow 之中使用 CSV 数据 要在 TensorFlow 之中使用 CSV 数据进行训练的话,我们大致需要经过三个步骤:获取 CSV 数据文件;将 csv 文件数据构建为 TensorFlow 中的 dataset 格式;对数据集合进行进一步的处理以便符合模型输入的需求。
- 2.2 将 csv 文件数据构建为 TensorFlow 中的 tf.dataset 格式 在这一步之中,我们需要使用到 TensorFlow 中的 API 函数来将 csv 格式的数据转化为 TensorFlow 可以理解的数据形式,具体来说,我们可以通过以下API实现:dataset = tf.data.experimental.make_csv_dataset( file_path, batch_size, label_name, na_value, num_epochs )该API之中的几个参数需要我们有所了解:file_path:CSV数据文件的路径;batch_size:我们要划分数据集合的批次大小;label_name:我们要进行预测的列;na_value:该API会将文件中的空白值替换为 na_value ;num_epochs:重复读取该数据集合的数量,通常设置为 1,因为我们只需要读取一遍数据集即可。
dataset相关搜索
-
daima
damain
dart
dataset
datasource
datediff
datediff函数
datepicker
datetime
db4o
dbi
dcloud
deallocate
debian安装
debugger
debugging
declaration
declarations
declare
decode函数