tensorflow开发API结构


高级API

  • tf
    • gfile
      • Exists(data_file)
    • decode_csv(value, record_defaults=_CSV_COLUMN_DEFAULTS)
    • equal(labels, '>50K')
    • sigmoid
    • data
      • Dataset
        Dataset中包含了很多元素element,每个元素包含1个或多个张量tensor,张量tensor是一个嵌套结构。Dataset中的每个元素element要用
        Iterator去取出来。
        • from_tensors()
        • from_tensor_slices()
        • zip((dataset1, dataset2))
        • map()
          用作Dataset变换,返回变换后的Dataset。
        • flat_map()
          用作Dataset变换,返回变换后的Dataset。
        • filter()
          用作Dataset变换,返回变换后的Dataset。
        • range(100)
        • skip()
        • make_one_shot_iterator()
        • make_initializable_iterator()
      • TFRecordDataset
      • TextLineDataset(data_file)
        • shuffle(buffer_size=_SHUFFLE_BUFFER)
      • Iterator
        使用Iterator取Dataset中的一个元素element,一个元素element中会包含1个或多个张量tensor。
        • initializer
        • get_next()
    • contrib
      • layers
        • real_valued_column()
        • flatten(x)
        • fully_connected(images_flat, 62, tf.nn.relu)
      • learn
        • datasets
          • base
            • load_csv_with_header(filename=IRIS_TRAINING,target_dtype=np.int,features_dtype=np.float32)
              • data
              • target
            • load_csv_without_header(filename=abalone_train, target_dtype=np.int, features_dtype=np.float64)
    • feature_column
      配置神经网络。
      • numeric_column("x", shape=[4])
      • numeric_column('age')
        属于连续特征列。
      • bucketized_column(age, boundaries=[18, 25, 30, 35, 40, 45, 50, 55, 60, 65])
        属于连续分组非线性特征列。
      • categorical_column_with_vocabulary_list('relationship', ['Husband', 'Not-in-family', 'Wife', 'Own-child', 'Unmarried','Other-relative'])
        属于离散特征列。
      • categorical_column_with_hash_bucket('occupation', hash_bucket_size=1000)
        属于离散特征列。
      • crossed_column(['education', 'occupation'], hash_bucket_size=1000)
        组合列
      • crossed_column([age_buckets, 'education', 'occupation'], hash_bucket_size=1000)
        嵌套组合列
      • input_layer(features=features, feature_columns=[age, height, weight])
        创建神经网络的输入层。
      • inputs
        创建模型的输入函数。
        • numpy_input_fn(x={"x": np.array(training_set.data)},y=np.array(training_set.target),num_epochs=None,shuffle=True)
          把numpy arrays传给input函数。
        • pandas_input_fn(x=pd.DataFrame({"x": x_data}),y=pd.Series(y_data),...)
          把pandas dataframes传给input函数。
    • layers
      配置神经网络。
      • dense(inputs=input_layer, units=10, activation=tf.nn.relu)
        创建神经网络的全连隐藏层。
      • dropout
      • flatten
      • conv1d
      • conv2d
      • conv3d
      • separable_conv2d
      • conv2d_transpose
      • conv3d_transpose
      • average_pooling1d
      • max_pooling1d
      • average_pooling2d
      • max_pooling2d
      • average_pooling3d
      • max_pooling3d
      • batch_normalization
    • estimator
      estimator中已经包含几个已经预定义做好的模型LinearClassifier、LinearRegressor、DNNClassifier、DNNRegressor、DNNLinearCombinedClassifier、DNNLinearCombinedRegressor。也可以定制开发自己的模型。
      • BaselineClassifier
      • BaselineRegressor
      • LinearRegressor(feature_columns=feature_columns)
        • train(input_fn=input_fn, steps=1000)
        • evaluate(input_fn=train_input_fn)
      • LinearClassifier(
        model_dir=model_dir, feature_columns=base_columns + crossed_columns,optimizer=tf.train.FtrlOptimizer(learning_rate=0.1,l1_regularization_strength=1.0,l2_regularization_strength=1.0))
        l1和l2参数解决过拟合的问题。
        • train(input_fn=lambda: input_fn(train_data, num_epochs, True, batch_size))
        • evaluate(input_fn=lambda: input_fn(test_data, 1, False, batch_size))
      • DNNClassifier
      • DNNRegressor(feature_columns=feature_cols,hidden_units=[10, 10], model_dir="/tmp/boston_model")
        • predict(input_fn=get_input_fn(prediction_set, num_epochs=1, shuffle=False))
      • DNNLinearCombinedClassifier
      • DNNLinearCombinedRegressor
      • DNNClassifier(feature_columns=feature_columns,hidden_units=[10, 20, 10],n_classes=3,model_dir="/tmp/iris_model")
      • DNNClassifier(feature_columns=[age, height, weight],hidden_units=[10, 10, 10],
        activation_fn=tf.nn.relu,
        dropout=0.2,
        n_classes=3,
        optimizer="Adam")
        • train(input_fn=train_input_fn, steps=2000)
        • evaluate(input_fn=test_input_fn)["accuracy"]
        • predict(input_fn=predict_input_fn)
      • Estimator(model_fn=model_fn, model_dir=None, config=None,params=model_params)
        利用这个类可以定制自己的模型
        • model_fn(features, labels, mode, config)
      • EstimatorSpec(mode=mode,predictions={"ages": predictions})
      • ModeKeys
        • TRAIN
          训练
        • EVAL
          评估
        • PREDICT
          预测
    • reshape(output_layer, [-1])
      Reshape output layer to 1-dim Tensor to return predictions
    • metrics
      • root_mean_squared_error(tf.cast(labels, tf.float64), predictions)
    • cast(labels, tf.float64)
    • SparseTensor(indices=[[0,1], [2,4]],values=[6, 0.5],dense_shape=[3, 5])
    • logging
      • set_verbosity(tf.logging.INFO)
      • INFO

底层API

  • tf
    • float32
    • constant(3.0, dtype=tf.float32)
    • get_variable("W", [1], dtype=tf.float64)
    • add(node1, node2)
    • assign(W, [-1.])
    • assign_add(global_step, 1)
    • matmul(images, weights)
      矩阵乘法。
    • placeholder(tf.float32, shape=(batch_size,mnist.IMAGE_PIXELS))
    • name_scope('hidden1')
    • Variable(tf.zeros([hidden1_units]),name='biases')
    • zeros([hidden1_units])
      使用0初始化变量。
    • truncated_normal([IMAGE_PIXELS, hidden1_units],stddev=1.0 / math.sqrt(float(IMAGE_PIXELS)))
      使用随机分布初始化变量。
    • nn
      • relu(tf.matmul(images, weights) + biases)
      • relu6
      • softmax(y)
      • conv2d(x, W, strides=[1, 1, 1, 1], padding='SAME')
      • max_pool(x, ksize=[1, 2, 2, 1],
        strides=[1, 2, 2, 1], padding='SAME')
      • dropout(h_fc1, keep_prob)
      • in_top_k(logits, labels, 1)
      • softmax_cross_entropy_with_logits(labels=y_, logits=y))
      • nce_loss(weights=nce_weights,biases=nce_biases,labels=train_labels,inputs=embed,
        num_sampled=num_sampled,
        num_classes=vocabulary_size))
    • losses
      • sparse_softmax_cross_entropy(labels=labels, logits=logits)
      • mean_squared_error(labels, predictions)
      • absolute_difference(labels, predictions)
      • log_loss(labels, predictions)
    • train
      • get_global_step()
      • AdamOptimizer(learning_rate=0.001).minimize(loss)
      • GradientDescentOptimizer(learning_rate=params["learning_rate"])
        • minimize(loss=loss, global_step=tf.train.get_global_step())
      • FtrlOptimizer(learning_rate=0.1,l1_regularization_strength=1.0,l2_regularization_strength=1.0))
      • Saver()
        • save(sess, FLAGS.train_dir, global_step=step)
        • restore(sess, FLAGS.train_dir)
    • square(linear_model - y)
    • reduce_sum(tf.square(y - labels))
      线性回归损失函数。
    • reduce_mean(cross_entropy, name='xentropy_mean')
    • group(optimizer.minimize(loss),tf.assign_add(global_step, 1))
    • summary
      • scalar('loss', loss)
      • merge_all()
      • FileWriter(FLAGS.train_dir, sess.graph)
        • add_summary(summary_str, step)
    • Graph()
      • as_default()
    • Session()
      • run([train_op, loss],feed_dict=feed_dict)
    • InteractiveSession()
    • global_variables_initializer()
    • ConfigProto(log_device_placement=True)
    • argmax(logits, 1)
    • rank(my3d)

sennchi

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容