安装anaconda、tensorflow(cpu版)以及keras,pycharm设置

一、安装anaconda

直接官网下载安装,https://www.anaconda.com/。
之前没有安过python的,直接在安装过程中添加环境变量就行,下面两个选项都选,安装过的不选第一个,只选第二个。
在这里插入图片描述
没有勾选第一个的,添加修改环境变量。
之前安装过的python环境改为anaconda。
在这里插入图片描述
我之前下载的是python3.9.0,装在prgram files里面,像下面一样修改。在这里插入图片描述

在这里插入图片描述
可以选择把之前下载的python卸载了,利用之前下的安装exe卸载,比较干净。

二、安装tensflow和keras

1.准备工作

keras最高支持到3.6,直接下载的anaconda里python版本为3.8,不支持。所以创建个虚拟环境,里面python用3.6的版本
在这里插入图片描述
利用命令行conda create -n python36 python=3.6下载虚拟环境,-n 后面的python36只是个名字,可以改,不要包含中文及大写字母、空格之类的。
中间有个让选择y/n,选择y,下完之后,并且打开anaconda下的env可以看到出现python36,这个文件夹的名字是上面安装的时候设置的:
在这里插入图片描述
如果之后想卸载,命令为conda remove -n env_name --all。下面是安装虚拟环境后,出现的文件夹。
在这里插入图片描述

这个时候输入conda env list可以看到出现了python36,base是安装anaconda自带的版本,也就是3.8的版本。
在这里插入图片描述

2.利用pip安装库

首先把环境调到python36下面,输入activate python36,上一步改名了的就输入activate ***(自己设置的名字),之后命令前面会出现(python36)。
对于tensorflow,因为是集显没有NVIDIA显卡,所以直接安装CPU版本的,安装命令为pip install tensflow-cpu,同样等待安装,如果需要指定版本,可以输入pip install tensflow-cpu==×.×。
在这里插入图片描述
安装好tensorflow之后再安装keras:
pip install keras,等着安装。
在这里插入图片描述

2.检查一下

在这里插入图片描述

三、pycharm设置

文件-设置-项目-python解释器,小齿轮点添加,
在这里插入图片描述
系统解释器,点三个小点点添加,选择前面的anaconda\envs\python36下的python.exe,确认,应用即可
在这里插入图片描述
最后看下keras的backend是不是tensorflow,一般默认是的,不会有问题。在.keras\keras.json,用记事本打开,看到backend是tensorflow。
在这里插入图片描述
完成。

四、检验一下

最后用B站课程上 深度学习超全项目合集 上的变分自编码器检验一下。
下面展示一些 内联代码片

import numpy as np
import matplotlib.pyplot as plt

from keras.layers import Input, Dense, Lambda
from keras.models import Model
from keras import backend as K  # 用来定义一些函数
from keras import objectives  # 训练的目标函数
from keras.datasets import mnist  # 手写数据识别

batch_size = 100
original_dim = 784  # 28*28
intermediate_dim = 256  # 第二个全连接层的输入是256
latent_dim = 2  # 输出维度为2
epochs = 50  # 迭代层数

# encoder部分
x = Input(shape=(original_dim,))
h = Dense(intermediate_dim, activation='relu')(x)  # 输入维度会自动根据x指定,只需要指定输出维度
z_mean = Dense(latent_dim)(h)  # 隐藏层,输出均值(2)
z_log_var = Dense(latent_dim)(h)  # 隐藏层,输出方差(2)


# Lambda层,不参与训练,只是计算
def sampling(args):
    z_mean, z_log_var = args
    epsilon = K.random_normal(shape=(batch_size, latent_dim), mean=0.)  # 100 *2, 均值为0的标准正态分布
    return z_mean + K.exp(z_log_var / 2) * epsilon


z = Lambda(sampling, output_shape=(latent_dim,))([z_mean, z_log_var])

# decoder部分
decoder_h = Dense(intermediate_dim, activation='relu')
decoder_mean = Dense(original_dim, activation='sigmoid')
h_decoded = decoder_h(z)
x_decoded_mean = decoder_mean(h_decoded)


# 定义总损失函数
def vae_loss(x, x_decoded_mean):
    xent_loss = original_dim * objectives.binary_crossentropy(x, x_decoded_mean)
    kl_loss = -0.5 * K.sum(1 + z_log_var - K.square(z_mean) - K.exp(z_log_var), axis=-1)
    return xent_loss + kl_loss

vae = Model(x, x_decoded_mean)
vae.compile(optimizer='rmsprop', loss=vae_loss)

# 训练
(x_train, y_train), (x_test, y_test) = mnist.load_data()

x_train = x_train.astype('float32') / 255
x_test = x_test.astype('float32') / 255
x_train = x_train.reshape((len(x_train), np.prod(x_train.shape[1:])))
x_test = x_test.reshape((len(x_test), np.prod(x_train.shape[1:])))

vae.fit(x_train, x_train, shuffle=True, epochs=epochs,
        batch_size=batch_size, validation_data=(x_test, x_test))

# 生成新的x

encoder = Model(x, z_mean)

x_test_encoded = encoder.predict(x_test, batch_size=batch_size)
plt.figure(figsize=(6, 6))
plt.scatter(x_test_encoded[:, 0], x_test_encoded[:, 1], c=y_test)
plt.colorbar()
plt.show()

decoder_input = Input(shape=(latent_dim,))
_h_decoded = decoder_h(decoder_input)
_x_decoded_mean = decoder_mean(_h_decoded)
generator = Model(decoder_input, _x_decoded_mean)

n = 20
digit_size = 28
figure = np.zeros((digit_size * n, digit_size * n))
grid_x = np.linspace(-4, 4, n)
grid_y = np.linspace(-4, 4, n)

for i, xi in enumerate(grid_x):
    for j, yi in enumerate(grid_y):
        z_sample = np.array([[yi, xi]])
        x_decoded = generator.predict(z_sample)
        digit = x_decoded[0].reshape(digit_size, digit_size)
        figure[(n - i - 1) * digit_size: (n - i) * digit_size,
               j * digit_size: (j + 1) * digit_size] = digit

plt.figure(figsize=(10, 10))
plt.imshow(figure)
plt.show()

看到正常从keras下载了mnist数据集,训练,并预测。
在这里插入图片描述
完成。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值