运行环境 :
anaconda3
tensorflow (1.3.0)
Keras (2.0.8)
1、安装anaconda
使用文件Anaconda3-2018.12-Linux-x86_64.sh,直接运行,开始有一个选择安装目录的询问,一直确定就可以。
唯一需要注意的是我使用的这个安装文件默认安装的是python3.7,和后面安装tensorflow会有版本冲突,原因参见https://www.jianshu.com/p/42a939285d7a
安装完anaconda后,我的系统会默认进入anaconda环境的终端,但是我希望自己手动使用conda activate开启,所以在.bashrc下添加了一句source deactivate,详细内容如下:
# added by Anaconda3 2018.12 installer
# >>> conda init >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$(CONDA_REPORT_ERRORS=false '/home/muyangren/anaconda3/bin/conda' shell.bash hook 2> /dev/null)"
if [ $? -eq 0 ]; then
\eval "$__conda_setup"
else
if [ -f "/home/muyangren/anaconda3/etc/profile.d/conda.sh" ]; then
. "/home/muyangren/anaconda3/etc/profile.d/conda.sh"
CONDA_CHANGEPS1=false conda activate base
else
\export PATH="/home/muyangren/anaconda3/bin:$PATH"
fi
fi
unset __conda_setup
source deactivate
# <<< conda init <<<
2、安装tensorflow
下载tensorflow,打开终端输入conda install tensorflow-gpu==1.3,输出如下内容:
muyangren@muyangren-N85-87HP6:~/anaconda3$ conda install tensorflow-gpu==1.3
Solving environment: done
==> WARNING: A newer version of conda exists. <==
current version: 4.5.12
latest version: 4.7.11
Please update conda by running
$ conda update -n base -c defaults conda
## Package Plan ##
environment location: /home/muyangren/anaconda3
added / updated specs:
- tensorflow-gpu==1.3
The following packages will be downloaded:
package | build
---------------------------|-----------------
protobuf-3.8.0 | py36he6710b0_0 690 KB defaults
libgcc-7.2.0 | h69d50b8_2 304 KB defaults
ca-certificates-2019.5.15 | 1 134 KB defaults
cudatoolkit-8.0 | 3 322.4 MB defaults
sqlite-3.29.0 | h7b6447c_0 1.9 MB defaults
mkl_fft-1.0.10 | py36ha843d7b_0 170 KB defaults
backports.weakref-1.0rc1 | py36_0 7 KB defaults
libprotobuf-3.8.0 | hd408876_0 4.7 MB defaults
numpy-1.16.2 | py36h7e9f1db_0 49 KB defaults
libedit-3.1.20181209 | hc058e9b_0 188 KB defaults
backports-1.0 | py_2 139 KB defaults
wheel-0.33.4 | py36_0 40 KB defaults
python-3.6.9 | h265db76_0 34.4 MB defaults
numpy-base-1.16.2 | py36hde5b4d6_0 4.4 MB defaults
cudnn-6.0.21 | cuda8.0_0 178.2 MB defaults
werkzeug-0.15.5 | py_0 256 KB defaults
setuptools-41.0.1 | py36_0 656 KB defaults
certifi-2019.6.16 | py36_1 156 KB defaults
tensorflow-tensorboard-1.5.1| py36hf484d3e_1 2.9 MB defaults
tensorflow-gpu-1.3.0 | 0 7 KB defaults
_libgcc_mutex-0.1 | main 3 KB defaults
bleach-1.5.0 | py36_0 22 KB defaults
six-1.12.0 | py36_0 22 KB defaults
pip-19.2.2 | py36_0 1.9 MB defaults
tensorflow-gpu-base-1.3.0 |py36cuda8.0cudnn6.0_1 107.4 MB defaults
openssl-1.1.1c | h7b6447c_1 3.8 MB defaults
markdown-3.1.1 | py36_0 113 KB defaults
mkl_random-1.0.2 | py36hd81dba3_0 407 KB defaults
html5lib-0.9999999 | py36_0 176 KB defaults
libgcc-ng-9.1.0 | hdf63c60_0 8.1 MB defaults
------------------------------------------------------------
Total: 673.7 MB
The following NEW packages will be INSTALLED:
_libgcc_mutex: 0.1-main defaults
backports.weakref: 1.0rc1-py36_0 defaults
cudatoolkit: 8.0-3 defaults
cudnn: 6.0.21-cuda8.0_0 defaults
libgcc: 7.2.0-h69d50b8_2 defaults
libprotobuf: 3.8.0-hd408876_0 defaults
markdown: 3.1.1-py36_0 defaults
protobuf: 3.8.0-py36he6710b0_0 defaults
tensorflow-gpu: 1.3.0-0 defaults
tensorflow-gpu-base: 1.3.0-py36cuda8.0cudnn6.0_1 defaults
tensorflow-tensorboard: 1.5.1-py36hf484d3e_1 defaults
The following packages will be UPDATED:
backports: 1.0-py37_1 defaults --> 1.0-py_2 defaults
ca-certificates: 2018.03.07-0 defaults --> 2019.5.15-1 defaults
certifi: 2018.11.29-py37_0 defaults --> 2019.6.16-py36_1 defaults
libedit: 3.1.20170329-h6b74fdf_2 defaults --> 3.1.20181209-hc058e9b_0 defaults
libgcc-ng: 8.2.0-hdf63c60_1 defaults --> 9.1.0-hdf63c60_0 defaults
mkl_fft: 1.0.6-py37hd81dba3_0 defaults --> 1.0.10-py36ha843d7b_0 defaults
mkl_random: 1.0.2-py37hd81dba3_0 defaults --> 1.0.2-py36hd81dba3_0 defaults
numpy: 1.15.4-py37h7e9f1db_0 defaults --> 1.16.2-py36h7e9f1db_0 defaults
numpy-base: 1.15.4-py37hde5b4d6_0 defaults --> 1.16.2-py36hde5b4d6_0 defaults
openssl: 1.1.1a-h7b6447c_0 defaults --> 1.1.1c-h7b6447c_1 defaults
pip: 18.1-py37_0 defaults --> 19.2.2-py36_0 defaults
setuptools: 40.6.3-py37_0 defaults --> 41.0.1-py36_0 defaults
six: 1.12.0-py37_0 defaults --> 1.12.0-py36_0 defaults
sqlite: 3.26.0-h7b6447c_0 defaults --> 3.29.0-h7b6447c_0 defaults
werkzeug: 0.14.1-py37_0 defaults --> 0.15.5-py_0 defaults
wheel: 0.32.3-py37_0 defaults --> 0.33.4-py36_0 defaults
The following packages will be DOWNGRADED:
bleach: 3.0.2-py37_0 defaults --> 1.5.0-py36_0 defaults
html5lib: 1.0.1-py37_0 defaults --> 0.9999999-py36_0 defaults
python: 3.7.1-h0371630_7 defaults --> 3.6.9-h265db76_0 defaults
Proceed ([y]/n)?
选择y,在下载时会发现下载速度很慢,可以在终端输入以下内容添加清华源:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
遇到问题:
在安装完成后,已经activate的终端中,输入python,然后import tensorflow可以成功,但是新的终端执行
conda activate会报如下错误:
Traceback (most recent call last):
File "/home/muyangren/anaconda3/bin/conda", line 7, in <module>
from conda.cli import main
ImportError: No module named conda.cli
原因是/anaconda3/bin目录下的软链接被更改,可以从上面安装tensorflow需要输入y之前的一句:
python: 3.7.1-h0371630_7 defaults --> 3.6.9-h265db76_0 defaults
看出,python被降级了,但是conda相关的环境变量可能并没有改变,导致conda命令不可用了
解决办法:
将python软连接删除,重新指定给python3.7(但是在进入anaconda的环境后需要再指定给python3.6,tensorflow才可以import成功,很尴尬~~~,通过重新安装anaconda可以从根本上解决应该,不过暂时还没有重装anaconda)
muyangren@muyangren-N85-87HP6:~/anaconda3/bin$ ll python*
lrwxrwxrwx 1 muyangren muyangren 9 8月 22 20:51 python -> python3.7*
lrwxrwxrwx 1 muyangren muyangren 9 8月 22 17:16 python3 -> python3.7*
-rwxrwxr-x 1 muyangren muyangren 14032 7月 21 2017 python3.6*
lrwxrwxrwx 1 muyangren muyangren 17 8月 22 16:49 python3.6-config -> python3.6m-config*
-rwxrwxr-x 2 muyangren muyangren 14032 7月 21 2017 python3.6m*
-rwxrwxr-x 1 muyangren muyangren 3090 8月 22 16:49 python3.6m-config*
-rwxrwxr-x 1 muyangren muyangren 12788080 8月 22 17:16 python3.7*
lrwxrwxrwx 1 muyangren muyangren 17 8月 22 17:16 python3.7-config -> python3.7m-config*
lrwxrwxrwx 1 muyangren muyangren 9 8月 22 17:16 python3.7m -> python3.7*
-rwxrwxr-x 1 muyangren muyangren 3478 8月 22 17:16 python3.7m-config*
lrwxrwxrwx 1 muyangren muyangren 17 8月 22 17:16 python3-config -> python3.7m-config*
3、下载maskrcnn源码包
github地址:基于Mask RCNN开源项目:https://github.com/matterport/Mask_RCNN
源码包中的文件是demo.ipynb,通过运行anaconda-navigator,打开Jupyter Notebook,将其转化为python文件。
运行python demo.py,出现如下错误:(然后开启安装依赖包旅程)
(base) muyangren@muyangren-N85-87HP6:~/opensource/Mask_RCNN-master/samples$ python demo.py
Traceback (most recent call last):
File "demo.py", line 16, in <module>
import skimage.io
ModuleNotFoundError: No module named 'skimage'
(base) muyangren@muyangren-N85-87HP6:~/opensource/Mask_RCNN-master/samples$ pip3 install skimage
Collecting skimage
Downloading https://pypi.tuna.tsinghua.edu.cn/packages/3b/ee/edbfa69ba7b7d9726e634bfbeefd04b5a1764e9e74867ec916113eeaf4a1/skimage-0.0.tar.gz
Complete output from command python setup.py egg_info:
*** Please install the `scikit-image` package (instead of `skimage`) ***
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-gjitbz6s/skimage/
You are using pip version 8.1.1, however version 19.2.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
依次安的包:
pip install scikit-image
pip install keras
pip install IPython
pip install imgaug
关于opencv的错误如下,原因是.bashrc中有source ros的环境,所以在代码中添加sys.path.remove(’/opt/ros/kinetic/lib/python2.7/dist-packages’)即可:
(base) muyangren@muyangren-N85-87HP6:~/opensource/Mask_RCNN-master/samples$ python demo.py Using TensorFlow backend.
Traceback (most recent call last):
File "demo.py", line 30, in <module>
import coco
File "/home/muyangren/opensource/Mask_RCNN-master/samples/coco/coco.py", line 34, in <module>
import imgaug # https://github.com/aleju/imgaug (pip3 install imgaug)
File "/home/muyangren/anaconda3/lib/python3.6/site-packages/imgaug/__init__.py", line 6, in <module>
from imgaug.imgaug import *
File "/home/muyangren/anaconda3/lib/python3.6/site-packages/imgaug/imgaug.py", line 12, in <module>
import cv2
ImportError: /opt/ros/kinetic/lib/python2.7/dist-packages/cv2.so: undefined symbol: PyCObject_Type
通过show命令查看opencv环境:
(base) muyangren@muyangren-N85-87HP6:~/opensource/Mask_RCNN-master/samples$ pip show opencv-python
Name: opencv-python
Version: 4.1.0.25
Summary: Wrapper package for OpenCV python bindings.
Home-page: https://github.com/skvark/opencv-python
Author: None
Author-email: None
License: MIT
Location: /home/muyangren/anaconda3/lib/python3.6/site-packages
Requires: numpy
You are using pip version 9.0.1, however version 19.2.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
继续安装依赖包:
pip install Cython
pip install pycocotools
4、注释掉get_ipython().run_line_magic(‘matplotlib’, ‘inline’),下载mask_rcnn_coco.h5模型文件
运行时出现超时错误,所以单独下载模型文件,放在samples目录下:
(base) muyangren@muyangren-N85-87HP6:~/opensource/Mask_RCNN-master/samples$ python demo.py
Using TensorFlow backend.
Downloading pretrained model to /home/muyangren/opensource/Mask_RCNN-master/mask_rcnn_coco.h5 ...
Traceback (most recent call last):
File "/home/muyangren/anaconda3/lib/python3.6/urllib/request.py", line 1318, in do_open
encode_chunked=req.has_header('Transfer-encoding'))
File "/home/muyangren/anaconda3/lib/python3.6/http/client.py", line 1239, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/home/muyangren/anaconda3/lib/python3.6/http/client.py", line 1285, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "/home/muyangren/anaconda3/lib/python3.6/http/client.py", line 1234, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/home/muyangren/anaconda3/lib/python3.6/http/client.py", line 1026, in _send_output
self.send(msg)
File "/home/muyangren/anaconda3/lib/python3.6/http/client.py", line 964, in send
self.connect()
File "/home/muyangren/anaconda3/lib/python3.6/http/client.py", line 1392, in connect
super().connect()
File "/home/muyangren/anaconda3/lib/python3.6/http/client.py", line 936, in connect
(self.host,self.port), self.timeout, self.source_address)
File "/home/muyangren/anaconda3/lib/python3.6/socket.py", line 722, in create_connection
raise err
File "/home/muyangren/anaconda3/lib/python3.6/socket.py", line 713, in create_connection
sock.connect(sa)
TimeoutError: [Errno 110] Connection timed out
5、降级keras
运行时报错TypeError: softmax() got an unexpected keyword argument ‘axis’
查找资料发现是keras版本和tensorflow版本不兼容,通过pip list查看Keras 为2.2.4:
网上有说给tensorflow升级的,也有说给keras降级的,我选择了后者,
因为tensorflow的版本还会和cuda、cudnn版本相关。
使用命令pip install keras==2.0.8,安装2.0.8版本的keras
(base) muyangren@muyangren-N85-87HP6:~/opensource/Mask_RCNN-master/samples$ pip list
DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning.
actionlib (1.11.13)
angles (1.9.11)
arbotix-python (0.10.0)
arbotix-sensors (0.10.0)
backcall (0.1.0)
backports.weakref (1.0rc1)
bleach (1.5.0)
bondpy (1.8.1)
camera-calibration-parsers (1.11.13)
catkin (0.7.14)
certifi (2016.2.28)
controller-manager (0.13.3)
controller-manager-msgs (0.13.3)
controller-manager-tests (0.13.3)
cv-bridge (1.12.8)
cycler (0.10.0)
Cython (0.29.13)
decorator (4.4.0)
diagnostic-analysis (1.9.3)
diagnostic-common-diagnostics (1.9.3)
diagnostic-updater (1.9.3)
dynamic-reconfigure (1.5.49)
gencpp (0.6.0)
geneus (2.2.6)
genlisp (0.4.16)
genmsg (0.5.11)
gennodejs (2.0.1)
genpy (0.6.7)
h5py (2.9.0)
html5lib (0.9999999)
imageio (2.5.0)
imgaug (0.2.9)
interactive-markers (1.11.4)
ipython (7.7.0)
ipython-genutils (0.2.0)
jedi (0.15.1)
Keras (2.2.4)
Keras-Applications (1.0.8)
Keras-Preprocessing (1.1.0)
kiwisolver (1.1.0)
laser-geometry (1.6.4)
Markdown (2.6.9)
matplotlib (3.1.1)
message-filters (1.12.14)
mkl-fft (1.0.10)
mkl-random (1.0.2)
networkx (2.3)
numpy (1.16.2)
opencv-python (4.1.0.25)
parso (0.5.1)
pexpect (4.7.0)
pickleshare (0.7.5)
Pillow (6.1.0)
pip (9.0.1)
pluginlib (1.11.3)
prompt-toolkit (2.0.9)
protobuf (3.4.0)
ptyprocess (0.6.0)
pycocotools (2.0.0)
Pygments (2.4.2)
pyparsing (2.4.2)
python-dateutil (2.8.0)
python-qt-binding (0.3.4)
PyWavelets (1.0.3)
PyYAML (5.1.2)
qt-dotgraph (0.3.11)
qt-gui (0.3.11)
qt-gui-cpp (0.3.11)
qt-gui-py-common (0.3.11)
resource-retriever (1.12.4)
rosapi (0.11.1)
rosbag (1.12.14)
rosboost-cfg (1.14.4)
rosbridge-library (0.11.1)
rosbridge-server (0.11.1)
rosclean (1.14.4)
roscreate (1.14.4)
rosgraph (1.12.14)
roslaunch (1.12.14)
roslib (1.14.4)
roslint (0.11.0)
roslz4 (1.12.14)
rosmake (1.14.4)
rosmaster (1.12.14)
rosmsg (1.12.14)
rosnode (1.12.14)
rosparam (1.12.14)
rospy (1.12.14)
rosservice (1.12.14)
rostest (1.12.14)
rostopic (1.12.14)
rosunit (1.14.4)
roswtf (1.12.14)
rqt-action (0.4.9)
rqt-bag (0.4.12)
rqt-bag-plugins (0.4.12)
rqt-console (0.4.8)
rqt-dep (0.4.9)
rqt-graph (0.4.9)
rqt-gui (0.5.0)
rqt-gui-py (0.5.0)
rqt-image-view (0.4.13)
rqt-launch (0.4.8)
rqt-logger-level (0.4.8)
rqt-moveit (0.5.7)
rqt-msg (0.4.8)
rqt-nav-view (0.5.7)
rqt-plot (0.4.8)
rqt-pose-view (0.5.8)
rqt-publisher (0.4.8)
rqt-py-common (0.5.0)
rqt-py-console (0.4.8)
rqt-reconfigure (0.4.10)
rqt-robot-dashboard (0.5.7)
rqt-robot-monitor (0.5.8)
rqt-robot-steering (0.5.9)
rqt-runtime-monitor (0.5.7)
rqt-rviz (0.5.10)
rqt-service-caller (0.4.8)
rqt-shell (0.4.9)
rqt-srv (0.4.8)
rqt-tf-tree (0.5.8)
rqt-top (0.4.8)
rqt-topic (0.4.10)
rqt-web (0.4.8)
rviz (1.12.16)
scikit-image (0.15.0)
scipy (1.3.1)
sensor-msgs (1.12.6)
setuptools (36.4.0)
Shapely (1.6.4.post2)
six (1.10.0)
smach (2.0.1)
smach-ros (2.0.1)
smclib (1.8.1)
tensorflow (1.3.0)
tensorflow-tensorboard (0.1.5)
tf (1.11.9)
tf-conversions (1.11.9)
tf2-kdl (0.5.18)
tf2-py (0.5.18)
tf2-ros (0.5.18)
topic-tools (1.12.14)
traitlets (4.3.2)
wcwidth (0.1.7)
Werkzeug (0.12.2)
wheel (0.29.0)
wiimote (1.12.0)
xacro (1.11.3)
You are using pip version 9.0.1, however version 19.2.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
6、运行成功
终端:
(base) muyangren@muyangren-N85-87HP6:~/opensource/Mask_RCNN-master/samples$ python demo.py
Using TensorFlow backend.
Configurations:
BACKBONE resnet101
BACKBONE_STRIDES [4, 8, 16, 32, 64]
BATCH_SIZE 1
BBOX_STD_DEV [0.1 0.1 0.2 0.2]
COMPUTE_BACKBONE_SHAPE None
DETECTION_MAX_INSTANCES 100
DETECTION_MIN_CONFIDENCE 0.7
DETECTION_NMS_THRESHOLD 0.3
FPN_CLASSIF_FC_LAYERS_SIZE 1024
GPU_COUNT 1
GRADIENT_CLIP_NORM 5.0
IMAGES_PER_GPU 1
IMAGE_CHANNEL_COUNT 3
IMAGE_MAX_DIM 1024
IMAGE_META_SIZE 93
IMAGE_MIN_DIM 800
IMAGE_MIN_SCALE 0
IMAGE_RESIZE_MODE square
IMAGE_SHAPE [1024 1024 3]
LEARNING_MOMENTUM 0.9
LEARNING_RATE 0.001
LOSS_WEIGHTS {'rpn_class_loss': 1.0, 'rpn_bbox_loss': 1.0, 'mrcnn_class_loss': 1.0, 'mrcnn_bbox_loss': 1.0, 'mrcnn_mask_loss': 1.0}
MASK_POOL_SIZE 14
MASK_SHAPE [28, 28]
MAX_GT_INSTANCES 100
MEAN_PIXEL [123.7 116.8 103.9]
MINI_MASK_SHAPE (56, 56)
NAME coco
NUM_CLASSES 81
POOL_SIZE 7
POST_NMS_ROIS_INFERENCE 1000
POST_NMS_ROIS_TRAINING 2000
PRE_NMS_LIMIT 6000
ROI_POSITIVE_RATIO 0.33
RPN_ANCHOR_RATIOS [0.5, 1, 2]
RPN_ANCHOR_SCALES (32, 64, 128, 256, 512)
RPN_ANCHOR_STRIDE 1
RPN_BBOX_STD_DEV [0.1 0.1 0.2 0.2]
RPN_NMS_THRESHOLD 0.7
RPN_TRAIN_ANCHORS_PER_IMAGE 256
STEPS_PER_EPOCH 1000
TOP_DOWN_PYRAMID_SIZE 256
TRAIN_BN False
TRAIN_ROIS_PER_IMAGE 200
USE_MINI_MASK True
USE_RPN_ROIS True
VALIDATION_STEPS 50
WEIGHT_DECAY 0.0001
2019-08-22 20:58:22.278625: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.
2019-08-22 20:58:22.278650: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
2019-08-22 20:58:22.278655: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations.
2019-08-22 20:58:22.278659: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX2 instructions, but these are available on your machine and could speed up CPU computations.
2019-08-22 20:58:22.278663: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use FMA instructions, but these are available on your machine and could speed up CPU computations.
2019-08-22 20:58:22.419679: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:893] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2019-08-22 20:58:22.420064: I tensorflow/core/common_runtime/gpu/gpu_device.cc:955] Found device 0 with properties:
name: GeForce GTX 1060
major: 6 minor: 1 memoryClockRate (GHz) 1.6705
pciBusID 0000:01:00.0
Total memory: 5.93GiB
Free memory: 5.43GiB
2019-08-22 20:58:22.420087: I tensorflow/core/common_runtime/gpu/gpu_device.cc:976] DMA: 0
2019-08-22 20:58:22.420096: I tensorflow/core/common_runtime/gpu/gpu_device.cc:986] 0: Y
2019-08-22 20:58:22.420106: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1045] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 1060, pci bus id: 0000:01:00.0)
Processing 1 images
image shape: (480, 640, 3) min: 0.00000 max: 255.00000 uint8
molded_images shape: (1, 1024, 1024, 3) min: -123.70000 max: 151.10000 float64
image_metas shape: (1, 93) min: 0.00000 max: 1024.00000 float64
anchors shape: (1, 261888, 4) min: -0.35390 max: 1.29134 float32
图像:(我第一次运行,随机到了一群羊的这张图~~~)