Tensorflow安装
学习tensorflow的原因:开始并不知道tensorflow有什么用,只是看到国内外的大牛都在用,后面自己看各种资料,发现这个工具是用于可视化数据分析,集算法于一体。官方说明:TensorFlow 是一种基于图计算的开源软件库,图中节点表示数学运算,图中的边表示多维数组(Tensor)。
1、安装:我的电脑是自己组装的台式机显卡是七彩虹的GTX1660Ti,可以安装tensorflow的GPU版本
步骤:1、跟常规操作一样,现在anaconda和pip两个渠道安装的大致一样,我的是Windows系统
首先设置清华的安装包源:https://blog.csdn.net/Alexin_lza/article/details/104304980
pip install tensorflow
跟很多小白一样,我是在B站看视频学的
基本上按照官网一步一步的安装,会发现有很多坑~~
tensorflow的官网:https://tensorflow.google.cn/install/pip
我先是用控制命令行来安装常规的python,再来升级pip版本
先安装cpu版本的,
坑1:找不到相应的版本,解决方法:看官网,提示是需要先安装虚拟环境
ERROR: Could not find a version that satisfies the requirement tensorflow (from versions: none)
很顺利的装好virtualenv的虚拟环境
坑2:不存在python3的地址,解决方法:搜了一下,我自己安装的目录只有python,所以改名称
在这个情况下,其实还没安装好,接着安装TensorBoard
pip install tensorboard
接着安装cuda 查看自己的显卡算力是否大于3,是的话,可以采用最新版本的CUDA和对应版本的cudnn
在CMD控制台下输入NVIDIA-msi, 查看自己的显卡算力是否大于3
比较重要的是要安装环境https://download.visualstudio.microsoft.com/download/pr/8c211be1-c537-4402-82e7-a8fb5ee05e8a/B6C82087A2C443DB859FDBEAAE7F46244D06C3F2A7F71C35E50358066253DE52/VC_redist.x64.exe才能启动tensorflow
------------------------------------------------分割线--------------------------------------------------------------------------------------------------------------------------
安装完之后,就看 使用命令行是: tensorboard --logdir=data
使用tensorflow主要步骤:
#coding=utf-8
#Version:python 3.7.6
#Tool:Pycharm 4.5.4
import tensorflow as tf
#实例化模型张量,预期输入是32X32X3的三维数组
inputs=tf.keras.Input(shape=[32,32,3])
#定义卷积核数量,尺寸,定义函数
x=tf.keras.layers.Conv2D(10,kernel_size=[3,3],strides=[1,1],padding='SAME',activation='relu',name='conv_1')(inputs)
x=tf.keras.layers.AveragePooling2D(pool_size=[2,2],strides=[2,2])(x)
#批量化处理
x=tf.keras.layers.BatchNormalization()(x)
x=tf.keras.layers.Flatten()(x)
x=tf.keras.layers.Dense(512,activation='relu')(x)
x=tf.keras.layers.Dense(10,activation='softmax')(x)
#定义模型输出
model=tf.keras.Model(inputs=inputs,outputs=x)
#模型实例化
model.summary()
#coding=utf-8
#Version:python 3.7.6
#Tool:Pycharm 4.5.4
__date = ' '
__author__ = 'Alexin'
import tensorflow as tf
import numpy as np
import cv2
def mobilenet_V1(
inputs,
classes
):
x=conv_block(inputs,32,strides=(2,2))
x=deepthwise_conv_block(x,64)
x=deepthwise_conv_block(x,128,strides=(2,2))
x=deepthwise_conv_block(x,128)
x=deepthwise_conv_block(x,256,strides=(2,2))
x=deepthwise_conv_block(x,256)
x=deepthwise_conv_block(x,512,strides=(2,2))
x=deepthwise_conv_block(x,512)
x=deepthwise_conv_block(x,512)
x=deepthwise_conv_block(x,512)
x=deepthwise_conv_block(x,512)
x=deepthwise_conv_block(x,512)
x=deepthwise_conv_block(x,1024,strides=(2,2))
x=deepthwise_conv_block(x,1024)
x=tf.keras.layers.GlobalAveragePooling2D()(x)
pred=tf.keras.layers.Dense(classes,activation="softmax")(x)
return pred
#标准卷积方法
def conv_block(
inputs, #输入
filters, #卷积核数量
kernel_size=(3,3), #卷积核尺寸
strides=(1,1) #滑动的步长
):
x=tf.keras.layers.Conv2D(filters,kernel_size=kernel_size,strides=strides,padding='same',
use_bias=False)(inputs)
x=tf.keras.layers.BatchNormalization()(x)
#边界值设为6.0,大一点,激活函数利用relu方法
return tf.keras.layers.ReLU(6.0)(x)
#深度卷积方法
def deepthwise_conv_block(
inputs, #输入
pointwise_conv_filters, #逐点卷积核数量
strides=(1,1) #滑动步长
):
x=tf.keras.layers.DepthwiseConv2D((3,3),padding='same',strides=strides,use_bias=False)(inputs)
x=tf.keras.layers.BatchNormalization()(x)
x=tf.keras.layers.ReLU(6.0)(x)
x=tf.keras.layers.Conv2D(pointwise_conv_filters,kernel_size=(1,1),strides=strides,padding='same',use_bias=False)(x)
x=tf.keras.layers.BatchNormalization()(x)
x=tf.keras.layers.ReLU(6.0)(x)
inputs=tf.keras.Input(shape=(32,32,3))
model=tf.keras.Model(inputs=inputs,outputs=mobilenet_V1(inputs,10))
model.summary()
(x_train,y_train),(x_test,y_test)=tf.keras.datasets.cifar10.load_data()
x_train=x_train/255.0
y_train=tf.keras.utils.to_categorical(y_train,10)
model.compile(
loss='categorical_crossentropy',
optimizer='adam',
metrics=['categorical_accuracy','Recall','AUC']
)
model.fit(x_train,y_train,batch_size=10,epochs=1)
model.save('mobilent_v1_cifar10'.h5)