国内直接从官网安装Anaconda实在是太慢了。
因此总结一下关于Anaconda安装的过程与步骤;
直接从国外下载很慢,可以从国内镜像进行下载,清华镜像中有给出:
注意要选择合适的操作系统,然后跟着指令一步一步安装就可以了。
Anaconda本身就是一个环境与依赖包的管理器,因此在安装完成后可以进一步进行包安装,此处以Keras为例。若直接从Anaconda默认的源中下载安装依赖包,还是很慢。所以需要把Anaconda中的源进行修改;
Step1:打开Anaconda prompt,必须使用prompt的原因是Windows中不可以直接创建.condarc文件,需要使用prompt 中执行
conda config --set show_channel_urls yes
Step2:找到C:\Users\当前用户名.condarc的文件;
然后需要把文件中的源替换为清华源中的路径。写博客的时候的,这些路径是:
channels:
- defaults
show_channel_urls: true
channel_alias: https://mirrors.tuna.tsinghua.edu.cn/anaconda
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
如果时间过了太久,需要自己去清华源中帮助界面寻找目录地址:
Step3: 保存并关掉这个文件,再次打开Anaconda prompt,清除缓存中的索引:
conda clean -i
再去下载库的时候就从清华源而不是国外了,在国内的话会快很多;
更简单了,直接打开.condarc文件,进行源替换,保存就可以使用了;
安装一个Keras包来练练手,打开Anaconda prompt,直接在App列表里找就有了。
在这里直接安装在Base环境中:
conda install keras
在Keras中有几个内嵌数据集,直接在脚本中包含然后默认下载会很慢,可以手动下载后覆盖掉原先的文件。
我是从另一位博主的分享中下载下来的,连接在这儿。
在windows中
找到当前环境的地址,比如我的base环境地址为C:/Users/ASUS/.keras/dataset,把下载好的数据集替换,就可以了。
# -*- coding: utf-8 -*-
"""
Created on Mon May 25 10:37:03 2020
@author: ASUS
"""
import keras
import imdb
import numpy as np
from keras.models import Sequential
from keras.layers import Dense
from keras.optimizers import RMSprop
from keras import losses
from keras import metrics
import matplotlib.pyplot as plt
'''
Load data
num_words=1000:Most frewuent 10000 words
train_data和test_data是评论列表,数据里的单词序列已被转换为整数序列,每个整数代表字典中的特定单词
train_labels and test_labels is a list of "0"and "1",1 for ‘pos’,0 for 'neg'
'''
print('reading imdb_data')
(train_data, train_labels), (test_data, test_labels) = imdb.load_data(num_words=10000)
# data preprocessing function
def vectorize_sequences(sequences, dimension=10000):
results = np.zeros((len(sequences), dimension))
for i, sequence in enumerate(sequences):
results[i, sequence] = 1.
return results
# Vectorize data
print('imdb_data preprocessing')
X_train = vectorize_sequences(train_data)
X_test = vectorize_sequences(test_data)
# Vectorize label
print('label processing')
y_train = np.asarray(train_labels).astype('float32')
y_test = np.asarray(test_labels).astype('float32')
# print(y_train[0])
# Initialize model
print('initialize model')
model = Sequential()
model.add(Dense(16, activation='relu', input_shape=(10000, )))
model.add(Dense(16, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
# compile model
print('compile model')
model.compile(optimizer='rmsprop',
loss='binary_crossentropy',
metrics=['accuracy'])
model.compile(optimizer=RMSprop(lr=0.001),
loss='binary_crossentropy',
metrics=['accuracy'])
model.compile(optimizer=RMSprop(lr=0.001),
loss=losses.binary_crossentropy,
metrics=[metrics.binary_accuracy])
X_val = X_train[: 10000]
partial_x_train = X_train[10000:]
y_val = y_train[: 10000]
partial_y_train = y_train[10000:]
print('Getting accuracy data')
history = model.fit(partial_x_train,
partial_y_train,
epochs=20,
batch_size=512,
validation_data=(X_val, y_val))
history_dict = history.history
print(history_dict.keys())
# 绘制loss-acc图
print('plot figure')
acc = history.history['binary_accuracy']
val_acc = history.history['val_binary_accuracy']
loss = history.history['loss']
val_loss = history.history['val_loss']
epochs = range(1, len(acc) + 1)
# figure show
# "bo" is for "blue dot"
plt.plot(epochs, loss, 'bo', label='Training loss')
plt.plot(epochs, acc, 'ro', label='Training acc')
# b is for "solid blue line"
plt.plot(epochs, val_loss, 'b', label='Validation loss')
plt.plot(epochs, val_acc, 'r', label='Validation acc')
plt.title('Loss and Acc')
plt.xlabel('Epochs')
plt.ylabel('Loss and Acc')
plt.legend()
plt.show()
打开Anaconda Navigator,一般base有默认下载Spyder,Launch之后,可以打开之前写好的脚本运行了。
结果就已经展示在上面了,这个训练好的模型可以保存再预测,这个下次再写。