这是一个系列的文章,讲述了一个工程师从零自学深度学习的过程。希望能和大家共同入门深度学习,然后
慢慢积累1W小时成为大师。
1.为啥要转机器学习?
先搞清楚为啥要学这玩意,才能更好的义无反顾的投身到机器学习的道路上。
笔者现任职于顺风科技,作为一名普通的大数据开发工程师,深感大数据开发很容易被取代(java工程师经过简单的自学很容易转行大数据开发工程师),所以立志转行机器学习工程师。只有不容易被取代,你才有更大的存在的价值,也才能变得更值钱。
2.几个和机器学习有关的关键词
人工智能、机器学习、深度学习、tensorflow和Keras
为啥要用人工智能?
人希望计算机能帮咱们做一些重复性的工作。对于一些简单的,比如算一下一部电影里面有多少个单词,计算机很容易做到。
但是如果让计算机识别这部电影是啥类型的(爱情、动作、恐怖..),对于咱们人来说看一会大概就知道了,但是对于计算机就很难。
人工智能就是干这个事的。这事算一种图像识别,而图像识别就是人工智能要解决的一个问题。
机器学习和人工智能啥关系?
机器学习是搞定人工智能问题的一个很有效的方法。
那深度学习又是啥?
深度学习算是机器学习的一个分支吧。可以这么理解,机器学习分为传统机器学习和深度学习。而深度学习其实就是想办法让计算机能够像人类的大脑一样去学习,然后解决问题的一种技术。
那tensorflow又是啥?
深度学习是一门比较难的技术,所以我们选择用牛逼的人或者公司的成果去快速的解决问题。而tensorflow就是谷歌内部用的深度学习计算框架,因为开源了,所以大家都能用。目前也最火,所以咱们用tensorflow框架来深度学习。
Keras又是啥?
就算tensorflow框架已经开源了,但是还是有点难。咱们想着能不能更快的用这个框架。然后Keras出现了,Keras其实就是对tensorflow包装了一层,是一个高层的深度学习的API。用了Keras,我们能更快的入门深度学习。
搞清楚这几个关键词,大概知道是做啥的,然后再去百度下加深印象。
3.入手一个可运行的深度学习的小demo。
import numpy as np
np.random.seed(1337) # for reproducibility
from keras.utils import np_utils
from keras.models import Sequential
from keras.layers import Dense, Activation
from keras.optimizers import RMSprop
# download the mnist to the path '~/.keras/datasets/' if it is the first time to be called
# X shape (60,000 28x28), y shape (10,000, )
f = np.load('D:\PycharmProjects\myownPythonProject\handwritingRecognize\mnist.npz')
x_train, y_train = f['x_train'], f['y_train']
x_test, y_test = f['x_test'], f['y_test']
f.close()
(X_train, y_train), (X_test, y_test) = (x_train, y_train), (x_test, y_test)
# data pre-processing
X_train = X_train.reshape(X_train.shape[0], -1) / 255. # normalize
X_test = X_test.reshape(X_test.shape[0], -1) / 255. # normalize
y_train = np_utils.to_categorical(y_train, num_classes=10)
y_test = np_utils.to_categorical(y_test, num_classes=10)
# Another way to build your neural net
model = Sequential([
Dense(32, input_dim=784),
Activation('relu'),
Dense(10),
Activation('softmax'),
])
# Another way to define your optimizer
rmsprop = RMSprop(lr=0.001, rho=0.9, epsilon=1e-08, decay=0.0)
# We add metrics to get more results you want to see
model.compile(optimizer=rmsprop,
loss='categorical_crossentropy',
metrics=['accuracy'])
print('Training ------------')
# Another way to train the model
model.fit(X_train, y_train, epochs=2, batch_size=32)
print('\nTesting ------------')
# Evaluate the model with the metrics we defined earlier
loss, accuracy = model.evaluate(X_test, y_test)
print('test loss: ', loss)
print('test accuracy: ', accuracy)
慢慢积累1W小时成为大师。
1.为啥要转机器学习?
先搞清楚为啥要学这玩意,才能更好的义无反顾的投身到机器学习的道路上。
笔者现任职于顺风科技,作为一名普通的大数据开发工程师,深感大数据开发很容易被取代(java工程师经过简单的自学很容易转行大数据开发工程师),所以立志转行机器学习工程师。只有不容易被取代,你才有更大的存在的价值,也才能变得更值钱。
2.几个和机器学习有关的关键词
人工智能、机器学习、深度学习、tensorflow和Keras
为啥要用人工智能?
人希望计算机能帮咱们做一些重复性的工作。对于一些简单的,比如算一下一部电影里面有多少个单词,计算机很容易做到。
但是如果让计算机识别这部电影是啥类型的(爱情、动作、恐怖..),对于咱们人来说看一会大概就知道了,但是对于计算机就很难。
人工智能就是干这个事的。这事算一种图像识别,而图像识别就是人工智能要解决的一个问题。
机器学习和人工智能啥关系?
机器学习是搞定人工智能问题的一个很有效的方法。
那深度学习又是啥?
深度学习算是机器学习的一个分支吧。可以这么理解,机器学习分为传统机器学习和深度学习。而深度学习其实就是想办法让计算机能够像人类的大脑一样去学习,然后解决问题的一种技术。
那tensorflow又是啥?
深度学习是一门比较难的技术,所以我们选择用牛逼的人或者公司的成果去快速的解决问题。而tensorflow就是谷歌内部用的深度学习计算框架,因为开源了,所以大家都能用。目前也最火,所以咱们用tensorflow框架来深度学习。
Keras又是啥?
就算tensorflow框架已经开源了,但是还是有点难。咱们想着能不能更快的用这个框架。然后Keras出现了,Keras其实就是对tensorflow包装了一层,是一个高层的深度学习的API。用了Keras,我们能更快的入门深度学习。
搞清楚这几个关键词,大概知道是做啥的,然后再去百度下加深印象。
3.入手一个可运行的深度学习的小demo。
import numpy as np
np.random.seed(1337) # for reproducibility
from keras.utils import np_utils
from keras.models import Sequential
from keras.layers import Dense, Activation
from keras.optimizers import RMSprop
# download the mnist to the path '~/.keras/datasets/' if it is the first time to be called
# X shape (60,000 28x28), y shape (10,000, )
f = np.load('D:\PycharmProjects\myownPythonProject\handwritingRecognize\mnist.npz')
x_train, y_train = f['x_train'], f['y_train']
x_test, y_test = f['x_test'], f['y_test']
f.close()
(X_train, y_train), (X_test, y_test) = (x_train, y_train), (x_test, y_test)
# data pre-processing
X_train = X_train.reshape(X_train.shape[0], -1) / 255. # normalize
X_test = X_test.reshape(X_test.shape[0], -1) / 255. # normalize
y_train = np_utils.to_categorical(y_train, num_classes=10)
y_test = np_utils.to_categorical(y_test, num_classes=10)
# Another way to build your neural net
model = Sequential([
Dense(32, input_dim=784),
Activation('relu'),
Dense(10),
Activation('softmax'),
])
# Another way to define your optimizer
rmsprop = RMSprop(lr=0.001, rho=0.9, epsilon=1e-08, decay=0.0)
# We add metrics to get more results you want to see
model.compile(optimizer=rmsprop,
loss='categorical_crossentropy',
metrics=['accuracy'])
print('Training ------------')
# Another way to train the model
model.fit(X_train, y_train, epochs=2, batch_size=32)
print('\nTesting ------------')
# Evaluate the model with the metrics we defined earlier
loss, accuracy = model.evaluate(X_test, y_test)
print('test loss: ', loss)
print('test accuracy: ', accuracy)