Tensorflow心酸学习过程

本文记录了作者在安装Tensorflow过程中遇到的问题及解决办法,包括设置清华源、安装虚拟环境解决找不到版本问题、修改Python名称、安装CUDA和cudnn、确认显卡算力、安装Visual C++ Redistributable。同时提到了安装完成后如何运行TensorBoard,并简述了使用Tensorflow的初步步骤,特别是Keras的Input方法应用。
摘要由CSDN通过智能技术生成

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)

keras Input方法应用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值