如何在Hadoop环境中重新训练初始图像分类器

时间:2016-11-15 13:24:39

标签: python hadoop tensorflow pyspark hadoop-streaming

最近,我在使用Win10操作系统的PC上试用了Google的Inception图像分类器。基本上我经历过tutorial/manual

简而言之,步骤如下:

  1. 安装Docker
  2. 安装Tensorflow
  3. 获取图片
  4. 检索培训代码(retrain.py)
  5. 重新启动(运行retrain.py)
  6. 在图片上使用分类器
  7. 我的问题是我想要在Hadoop环境中做同样的事情,不幸的是我不知道如何做到这一点,因为我在Hadoop中是新手。我试图谷歌这个话题,但我没有找到任何有用的结果。

    我的Hadoop集群包含4个带有Hadoop,Hive和Spark的Raspberry Pi。如果我是对的,至少有两种方法可以在Hadoop上进行再培训:

    1. 创建Hadoop流以运行phyton代码
    2. 安装pySpark并使用
    3. 执行“魔术”

      选择第一个选项我想象的步骤可能是:

      (Python预安装在NOOB上)

      1. 将图像放入hdfs
      2. 安装Tensorflow库和工具
      3. 检索培训代码和Tensorflow的完整示例集
      4. 创建Hadoop Streaming以运行再培训过程

        $HADOOP_HOME/bin/hadoop jar $HADOOP_HOME/hadoop-streaming.jar \
        -input myInputDirs \
        -output myOutputDir \
        -mapper org.apache.hadoop.mapred.lib.IdentityMapper \
        -reducer /bin/wc
        -file (a python file which executes **)
        
      5. 在图片上使用分类器

        ** = $python tensorflow/examples/image_retraining/retrain.py \
        --bottleneck_dir=/tf_files/bottlenecks \
        --how_many_training_steps 500 \
        --model_dir=/tf_files/inception \
        --output_graph=/tf_files/retrained_graph.pb \
        --output_labels=/tf_files/retrained_labels.txt \
        --image_dir /tf_files/(myImages)
        
      6. 第二种方式......我不知道

        如果有人可以提供一些建议,详细步骤或只是告诉我一些方向,我会非常感激。

1 个答案:

答案 0 :(得分:0)

您需要为HDFS配置环境。您还可以使用docker文件在docker中运行程序:https://github.com/tensorflow/ecosystem/blob/master/docker/Dockerfile.hdfs。您可能需要将培训计划复制到图像中。

然后,在将数据复制到HDFS之后,您只需指定"hdfs://namenode/file/path"作为模型输入。 TensorFlow的gfile模块可以识别HDFS URI。

相关问题