机器学习杂记,主要记录学习过程中的一些疑问和理解

一、

最近看tensorflow,试着写 cnn 代码,其中的一个接口 :

def conv2d(input, filter, strides, padding, use_cudnn_on_gpu=True, data_format="NHWC", dilations=[1, 1, 1, 1], name=None)

其中 filter 这个 tensor  [filter_height, filter_width, in_channels, out_channels] 对应的意思就是[卷积核的高度,卷积核的宽度,图像通道数,卷积核个数] 刚开始一直纠结的就是第四维哈

二、

对于tf.Session().run([], feed_dict)理解,函数原型:

run(fetches, feed_dict=None, options=None, run_metadata=None)

之前一直纠结这个 run 到底是怎么运作的,现在搞明白一些哈,记录下:

第一个参数fetches 主要是 tensors,对于 text-cnn 示例代码里面,fetches=tf.train.AdamOptimizer(learning_rate).minimize(self.loss)哈,其实就是你期望干什么或者计算哪个值,放到 text-cnn 训练模型,再训练期间我当时时期望一直优化参数optim 了,ok,既然要优化参数 optim,那么他是怎么得到的呢?通过 self.loss 得到的。进一步,self.loss时通过训练数据和对应标签计算得到的,因此我们就知道 feed_dict 需要哪些参数了,就是[input_x, input_y]。也就是说 feed_dict 传哪些参数需要根据 fetches来定。

之前在网上 down 了一个 text_cnn 代码,训练了一下结果不错,但是怎么把他应用到线上呢,或者怎么用于生产呢?然后找到了TensorFlow Serving这货,搞了一天终于送上线了, 其中需要设置saved,涉及tf.saved_model.signature_def_utils.build_signature_def(inputs,outputs,method_name),才对run 有了进一步了解。可以看一下这个黑哥们的解释哈,https://stackoverflow.com/questions/51401935/arguments-to-tensorflow-session-run-do-you-pass-operations

猜你喜欢

转载自blog.csdn.net/dongfeng10086/article/details/83413676