diff --git a/README.md b/README.md
index 4240682..6daba24 100644
--- a/README.md
+++ b/README.md
@@ -1,15 +1,17 @@
## xstrap
## 项目简介
-该项目前端是高仿某在线教育网站,后端采用Java编写。包含登录、注册、课程列表、课程详情、课时、视频播放、订单等在线视频教育网站所有的模块。目前项目刚刚启动,很多模块都尚未实现,正在一步一步完善中……
+该项目前端是高仿某在线教育网站,后端采用Java编写。包含登录、注册、个人设置、我的学习、我的账户、课程列表、课程详情、课时、视频播放、订单支付等在线视频教育网站所有的模块。目前项目刚刚启动,很多模块都尚未实现,正在一步一步完善中……
## 所用技术
-SpringBoot、SpringData JPA、BootStrap、FreeMarker、MySQL。
+SpringBoot、SpringData JPA、BootStrap、FreeMarker、MySQL、Maven。
初步将该项目定位成一个互联网项目,目前演示站是放在腾讯云主机上(Linux,单台),数据库是MySQL,下一步打算使用redis代替本地缓存。
SpringData JPA搭配SpringBoot是史上最简组合,让代码简单到没朋友。BootStrap是一个强大的CSS框架,简洁强大,本人也在学习BootStrap。
FreeMarker语法简单,能生成静态页,互联网项目都在用。MySQL数据库是应用最广泛的开源数据库,上手简单。
项目目前就用到以上技术,后续不排除会加入其他技术,但为了避免项目臃肿,不会让项目变成一个技术的全家桶。
+## 开发环境
+统一使用IntelliJ IDEA 14.1.7及以上版本作为开发工具,JDK使用1.8,Maven使用3.2;
## 演示效果图
@@ -39,6 +41,7 @@ FreeMarker语法简单,能生成静态页,互联网项目都在用。MySQL
如果你是新手,参与开源项目将会对你的成长有很大帮助,如果你是老手,可以一起讨论技术选型和项目架构设计,希望能给这个项目注入新的设计思想;
联系邮件:490983587@qq.com
+QQ群:680063547(申请入群关键字"xstrap")
或者扫描下面二维码,加我微信:

diff --git "a/doc/JSR303\346\225\260\346\215\256\346\240\241\351\252\214.txt" "b/doc/JSR303\346\225\260\346\215\256\346\240\241\351\252\214.txt"
new file mode 100644
index 0000000..423e7fd
--- /dev/null
+++ "b/doc/JSR303\346\225\260\346\215\256\346\240\241\351\252\214.txt"
@@ -0,0 +1,55 @@
+JSR 303 是java为Bean数据合法性校验提供的标准框架,它已经包含在JavaEE 6.0中。
+JSR 303 通过在Bean属性上标注类似于@NotNull、@Max等标准的注解指定校验规则,
+并通过标准的验证接口对Bean进行验证:
+---------------------------------------------------------------------------
+注解 说明
+---------------------------------------------------------------------------
+@Null 被注释的元素必须为null
+@NotNull 被注释的元素不能为null
+@AssertTrue 被注释的元素必须为true
+@AssertFalse 被注释的元素必须为false
+@Min(value) 被注释的元素必须是一个数字,其值必须>=指定的最小值
+@Max(value) 被注释的元素必须是一个数字,其值必须<=指定的最大值
+@DecimalMin(value) 被注释的元素必须是一个数字,其值必须>=指定的最小值
+@DecimalMax(value) 被注释的元素必须是一个数字,其值必须<=指定的最大值
+@Size(max, min) 被注释的元素的大小必须在指定的范围内
+@Digits(integer, fraction) 被注释的元素必须是一个数字,其值必须在可接受的范围内
+@Past 被注释的元素必须是一个过去的日期
+@Future 被注释的元素必须是一个将来的日期
+@Pattern(value) 被注释的元素必须符合指定的正则表达式
+
+---------------------------------------------------------------------------
+Hibernate Validation 是JSR 303 的一个参考实现,除支持所有的标准的校验注解之外,
+它还支持以下的扩展注解:
+
+注解 说明
+@Email 被注释的元素必须是一个电子邮箱地址
+@Length 被注释的字符串的大小必须在指定的范围内
+@NotEmpty 被注释的字符串必须非空
+@Range 被注释的元素必须在合适的范围内
+---------------------------------------------------------------------------
+Spring 4.0 拥有自己独立的数据校验框架,同时支持JSR 303 标准的校验框架。
+Spring 在进行数据绑定时,可同时调用校验框架完成数据校验工作。
+在SpringMVC中, 可直接通过注解驱动的方式进行数据校验。
+Spring 的LocalValidatorFactoryBean 既实现了Spring的Validator接口,
+也实现了 JSR 303 的Validator接口。只要在Spring容器中定义一个
+LocalValidatorFactoryBean,即可将其注入到需要数据校验的Bean中。
+Spring本身并没有提供 JSR303 的实现,所以必须将 JSR303 的实现者的jar包
+放到类路径下。
+
+通过在处理方法的入参上标注 @Valid注解 即可让SpringMVC 在完成数据绑定之后执行数据校验的工作。
+在已经标注了 JSR303 注解的表单/命令对象前标注一个 @Valid, SpringMVC 框架在将请求参数绑定到
+该入参对象后,就会调用校验框架根据注解生命的校验规则实施校验。
+
+SpringMVC 是用过对处理方法签名的规约来保存校验结果的:
+前一个表单/命令对象的校验结果保存到随后的入参中,这个保存的校验结果的入参必须是 BindingResult
+或 Errors 类型,这两个类都位于 org.springframework.validation 包中。
+
+
+但是需要注意的一点:
+需要校验的bean对象和其绑定结果的BindingResult对象必须成对出现,而且它们两个必须紧挨着,之间不能有
+其他的入参。
+
+BindingResutl 其实是 Errors的子类, Errors 接口提供了获取错误信息的方法,如 getErrorCount()
+或 getFieldErrors(String field)。
+BindingResult 扩展了 Errors 接口。
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 2845040..81cecc8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -91,6 +91,84 @@
spring-boot-starter-data-redis
+
+
+ commons-fileupload
+ commons-fileupload
+ 1.3.1
+
+
+
+
+ com.alibaba
+ druid
+ 1.1.2
+
+
+ com.alibaba
+ druid-spring-boot-starter
+ 1.1.2
+
+
+
+
+ org.apache.shiro
+ shiro-spring
+ 1.3.2
+
+
+
+
+ org.crazycake
+ shiro-redis
+ 2.4.2.1-RELEASE
+
+
+
+
+ org.hibernate
+ hibernate-validator
+
+
+
+
+ com.belerweb
+ weibo4j-oauth2
+ 2.1.1-beta2-3
+
+
+
+
+ com.github.kevinsawicki
+ http-request
+ 6.0
+
+
+
+
+ tk.mybatis
+ mapper
+ 3.3.8
+
+
+
+
+ io.springfox
+ springfox-swagger2
+ 2.6.1
+
+
+
+ io.springfox
+ springfox-swagger-ui
+ 2.6.1
+
+
+
+ com.belerweb
+ social-sdk
+ 0.0.5
+
@@ -101,5 +179,20 @@
+
+
+
+ maven-ali
+ http://maven.aliyun.com/nexus/content/groups/public//
+
+ true
+
+
+ true
+ always
+ fail
+
+
+
diff --git a/src/main/java/com/xuebusi/XstrapApplication.java b/src/main/java/com/xuebusi/XstrapApplication.java
index 7c36211..3f3b91e 100644
--- a/src/main/java/com/xuebusi/XstrapApplication.java
+++ b/src/main/java/com/xuebusi/XstrapApplication.java
@@ -2,8 +2,21 @@
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration;
+import org.springframework.boot.web.servlet.ServletComponentScan;
+import org.springframework.cache.annotation.EnableCaching;
+import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
-@SpringBootApplication
+@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class,
+ DataSourceTransactionManagerAutoConfiguration.class})
+@ServletComponentScan
+@EnableScheduling
+@EnableTransactionManagement
+@EnableCaching
+@EnableAsync
public class XstrapApplication {
public static void main(String[] args) {
diff --git a/src/main/java/com/xuebusi/common/cache/InitDataCacheMap.java b/src/main/java/com/xuebusi/common/cache/InitDataCacheMap.java
index 95a6a7a..f09c38b 100644
--- a/src/main/java/com/xuebusi/common/cache/InitDataCacheMap.java
+++ b/src/main/java/com/xuebusi/common/cache/InitDataCacheMap.java
@@ -31,11 +31,6 @@ public class InitDataCacheMap {
*/
private static Map lessonCacheMap = new HashMap<>();
- /**
- * 缓存讲师信息
- */
- private static MapteacherCacheMap = new HashMap<>();
-
/**
* 缓存用户基本信息
*/
@@ -57,10 +52,6 @@ public static Map getLessonCacheMap() {
return lessonCacheMap;
}
- public static Map getTeacherCacheMap() {
- return teacherCacheMap;
- }
-
public static Map getUserCacheMap() {
return userCacheMap;
}
diff --git a/src/main/java/com/xuebusi/common/config/DruidDataSourceConfig.java b/src/main/java/com/xuebusi/common/config/DruidDataSourceConfig.java
new file mode 100644
index 0000000..779c500
--- /dev/null
+++ b/src/main/java/com/xuebusi/common/config/DruidDataSourceConfig.java
@@ -0,0 +1,45 @@
+package com.xuebusi.common.config;
+
+import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
+import com.alibaba.druid.support.spring.stat.DruidStatInterceptor;
+import org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+
+import javax.sql.DataSource;
+
+@Configuration
+@EnableTransactionManagement
+/**
+ * Druid的DataResource配置类
+ */
+public class DruidDataSourceConfig{
+
+
+ @Bean
+ @ConfigurationProperties(prefix = "spring.datasource.druid")
+ public DataSource dataSource() {
+ return DruidDataSourceBuilder.create().build();
+ }
+
+
+ // 按照BeanId来拦截配置 用来bean的监控
+ @Bean(value = "druid-stat-interceptor")
+ public DruidStatInterceptor DruidStatInterceptor() {
+ DruidStatInterceptor druidStatInterceptor = new DruidStatInterceptor();
+ return druidStatInterceptor;
+ }
+
+ @Bean
+ public BeanNameAutoProxyCreator beanNameAutoProxyCreator() {
+ BeanNameAutoProxyCreator beanNameAutoProxyCreator = new BeanNameAutoProxyCreator();
+ beanNameAutoProxyCreator.setProxyTargetClass(true);
+ // 设置要监控的bean的id
+ beanNameAutoProxyCreator.setBeanNames("sysRoleMapper","loginController");
+ beanNameAutoProxyCreator.setInterceptorNames("druid-stat-interceptor");
+ return beanNameAutoProxyCreator;
+ }
+
+}
diff --git a/src/main/java/com/xuebusi/common/config/ErrorConfiguration.java b/src/main/java/com/xuebusi/common/config/ErrorConfiguration.java
new file mode 100644
index 0000000..90c9384
--- /dev/null
+++ b/src/main/java/com/xuebusi/common/config/ErrorConfiguration.java
@@ -0,0 +1,38 @@
+package com.xuebusi.common.config;
+
+import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer;
+import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer;
+import org.springframework.boot.web.servlet.ErrorPage;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.http.HttpStatus;
+
+/**
+ * Created by SYJ on 2017/11/5.
+ */
+@Configuration
+public class ErrorConfiguration {
+
+ @Bean
+ public EmbeddedServletContainerCustomizer containerCustomizer() {
+
+ return new EmbeddedServletContainerCustomizer() {
+ @Override
+ public void customize(ConfigurableEmbeddedServletContainer container) {
+ container.addErrorPages(new ErrorPage(HttpStatus.BAD_REQUEST, "/400"));
+ container.addErrorPages(new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/500"));
+ container.addErrorPages(new ErrorPage(HttpStatus.NOT_FOUND, "/404"));
+ }
+ };
+ }
+
+
+
+
+
+
+
+
+
+
+}
diff --git a/src/main/java/com/xuebusi/common/config/FileUploadConfig.java b/src/main/java/com/xuebusi/common/config/FileUploadConfig.java
new file mode 100644
index 0000000..4206b77
--- /dev/null
+++ b/src/main/java/com/xuebusi/common/config/FileUploadConfig.java
@@ -0,0 +1,21 @@
+package com.xuebusi.common.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.multipart.commons.CommonsMultipartResolver;
+
+/**
+ * 文件上传配置
+ * Created by SYJ on 2017/11/6.
+ */
+@Configuration
+public class FileUploadConfig {
+
+ @Bean
+ public CommonsMultipartResolver multipartResolver() {
+ CommonsMultipartResolver resolver = new CommonsMultipartResolver();
+ resolver.setDefaultEncoding("UTF-8");
+ resolver.setMaxUploadSize(5242880);
+ return resolver;
+ }
+}
diff --git a/src/main/java/com/xuebusi/common/config/ShiroConfig.java b/src/main/java/com/xuebusi/common/config/ShiroConfig.java
new file mode 100644
index 0000000..54709d9
--- /dev/null
+++ b/src/main/java/com/xuebusi/common/config/ShiroConfig.java
@@ -0,0 +1,218 @@
+//package com.xuebusi.common.config;
+//
+//import com.xuebusi.common.shiro.ShiroRealm;
+//import com.xuebusi.common.shiro.filter.KickoutSessionControlFilter;
+//import com.xuebusi.common.utils.MD5Utils;
+//import com.xuebusi.entity.SysPermissionInit;
+//import com.xuebusi.service.SysPermissionInitService;
+//import org.apache.shiro.authc.credential.HashedCredentialsMatcher;
+//import org.apache.shiro.codec.Base64;
+//import org.apache.shiro.mgt.SecurityManager;
+//import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
+//import org.apache.shiro.web.mgt.CookieRememberMeManager;
+//import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
+//import org.apache.shiro.web.servlet.SimpleCookie;
+//import org.apache.shiro.web.session.mgt.DefaultWebSessionManager;
+//import org.crazycake.shiro.RedisCacheManager;
+//import org.crazycake.shiro.RedisManager;
+//import org.crazycake.shiro.RedisSessionDAO;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.beans.factory.annotation.Value;
+//import org.springframework.context.annotation.Bean;
+//import org.springframework.context.annotation.Configuration;
+//
+//import javax.servlet.Filter;
+//import java.util.LinkedHashMap;
+//import java.util.List;
+//import java.util.Map;
+//
+//@Configuration
+//public class ShiroConfig {
+//
+// @Autowired(required = false)
+// SysPermissionInitService sysPermissionInitService;
+//
+// @Value("${spring.redis.host}")
+// private String host;
+//
+// @Value("${spring.redis.port}")
+// private int port;
+//
+// @Value("${spring.redis.timeout}")
+// private int timeout;
+//
+// /**
+// * ShiroFilterFactoryBean 处理拦截资源文件问题。
+// * 注意:单独一个ShiroFilterFactoryBean配置是或报错的,以为在
+// * 初始化ShiroFilterFactoryBean的时候需要注入:SecurityManager
+// *
+// * Filter Chain定义说明 1、一个URL可以配置多个Filter,使用逗号分隔 2、当设置多个过滤器时,全部验证通过,才视为通过
+// * 3、部分过滤器可指定参数,如perms,roles
+// *
+// */
+// @Bean
+// public ShiroFilterFactoryBean shiroFilter(SecurityManager securityManager) {
+// ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
+//
+// // 必须设置 SecurityManager
+// shiroFilterFactoryBean.setSecurityManager(securityManager);
+//
+// // 如果不设置默认会自动寻找Web工程根目录下的"/login.jsp"页面
+// shiroFilterFactoryBean.setLoginUrl("/login");
+// // 登录成功后要跳转的链接
+// shiroFilterFactoryBean.setSuccessUrl("/index");
+// // 未授权界面;
+// shiroFilterFactoryBean.setUnauthorizedUrl("/403");
+//
+// //自定义拦截器
+// Map filtersMap = new LinkedHashMap();
+// //限制同一帐号同时在线的个数。
+// filtersMap.put("kickout", kickoutSessionControlFilter());
+// shiroFilterFactoryBean.setFilters(filtersMap);
+//
+// // 权限控制map.
+// Map filterChainDefinitionMap = new LinkedHashMap();
+// // 配置不会被拦截的链接 顺序判断
+// // 配置退出过滤器,其中的具体的退出代码Shiro已经替我们实现了
+// // 从数据库获取动态的权限
+// // filterChainDefinitionMap.put("/add", "perms[权限添加]");
+// // :这是一个坑呢,一不小心代码就不好使了;
+// //
+// //logout这个拦截器是shiro已经实现好了的。
+// // 从数据库获取
+// List list = sysPermissionInitService.selectAll();
+//
+// if (list != null && list.size() > 0) {
+// for (SysPermissionInit sysPermissionInit : list) {
+// filterChainDefinitionMap.put(sysPermissionInit.getUrl(), sysPermissionInit.getPermissionInit());
+// }
+// }
+//
+// shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap);
+// return shiroFilterFactoryBean;
+// }
+//
+// @Bean
+// public SecurityManager securityManager() {
+// DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
+// // 设置realm.
+// securityManager.setRealm(getShiroRealm());
+// // 自定义缓存实现 使用redis
+// securityManager.setCacheManager(cacheManager());
+// // 自定义session管理 使用redis
+// securityManager.setSessionManager(sessionManager());
+// //注入记住我管理器;
+// securityManager.setRememberMeManager(rememberMeManager());
+// return securityManager;
+// }
+//
+// /**
+// * 身份认证realm; (这个需要自己写,账号密码校验;权限等)
+// *
+// * @return
+// */
+// @Bean
+// public ShiroRealm getShiroRealm() {
+// ShiroRealm shiroRealm = new ShiroRealm();
+// HashedCredentialsMatcher matcher = new HashedCredentialsMatcher();
+// matcher.setHashAlgorithmName(MD5Utils.MD5);
+// matcher.setHashIterations(MD5Utils.HASH_ITERATIONS);
+// shiroRealm.setCredentialsMatcher(matcher);
+// return shiroRealm;
+// }
+//
+//
+//
+// /**
+// * 配置shiro redisManager
+// * 使用的是shiro-redis开源插件
+// * @return
+// */
+// public RedisManager redisManager() {
+// RedisManager redisManager = new RedisManager();
+// redisManager.setHost(host);
+// redisManager.setPort(port);
+// redisManager.setExpire(1800);// 配置缓存过期时间
+// redisManager.setTimeout(timeout);
+// // redisManager.setPassword(password);
+// return redisManager;
+// }
+//
+// /**
+// * cacheManager 缓存 redis实现
+// * 使用的是shiro-redis开源插件
+// * @return
+// */
+// public RedisCacheManager cacheManager() {
+// RedisCacheManager redisCacheManager = new RedisCacheManager();
+// redisCacheManager.setRedisManager(redisManager());
+// return redisCacheManager;
+// }
+//
+// /**
+// * RedisSessionDAO shiro sessionDao层的实现 通过redis
+// * 使用的是shiro-redis开源插件
+// */
+// @Bean
+// public RedisSessionDAO redisSessionDAO() {
+// RedisSessionDAO redisSessionDAO = new RedisSessionDAO();
+// redisSessionDAO.setRedisManager(redisManager());
+// return redisSessionDAO;
+// }
+//
+// /**
+// * Session Manager
+// * 使用的是shiro-redis开源插件
+// */
+// @Bean
+// public DefaultWebSessionManager sessionManager() {
+// DefaultWebSessionManager sessionManager = new DefaultWebSessionManager();
+// sessionManager.setSessionDAO(redisSessionDAO());
+// return sessionManager;
+// }
+//
+// /**
+// * cookie对象;
+// * @return
+// */
+// public SimpleCookie rememberMeCookie(){
+// //这个参数是cookie的名称,对应前端的checkbox的name = rememberme
+// SimpleCookie simpleCookie = new SimpleCookie("rememberme");
+// //
+// simpleCookie.setMaxAge(2592000);
+// return simpleCookie;
+// }
+//
+// /**
+// * cookie管理对象;记住我功能
+// * @return
+// */
+// public CookieRememberMeManager rememberMeManager(){
+// CookieRememberMeManager cookieRememberMeManager = new CookieRememberMeManager();
+// cookieRememberMeManager.setCookie(rememberMeCookie());
+// //rememberMe cookie加密的密钥 建议每个项目都不一样 默认AES算法 密钥长度(128 256 512 位)
+// cookieRememberMeManager.setCipherKey(Base64.decode("3AvVhmFLUs0KTA3Kprsdag=="));
+// return cookieRememberMeManager;
+// }
+//
+// /**
+// * 限制同一账号登录同时登录人数控制
+// * @return
+// */
+// public KickoutSessionControlFilter kickoutSessionControlFilter(){
+// KickoutSessionControlFilter kickoutSessionControlFilter = new KickoutSessionControlFilter();
+// //使用cacheManager获取相应的cache来缓存用户登录的会话;用于保存用户—会话之间的关系的;
+// //这里我们还是用之前shiro使用的redisManager()实现的cacheManager()缓存管理
+// //也可以重新另写一个,重新配置缓存时间之类的自定义缓存属性
+// kickoutSessionControlFilter.setCacheManager(cacheManager());
+// //用于根据会话ID,获取会话进行踢出操作的;
+// kickoutSessionControlFilter.setSessionManager(sessionManager());
+// //是否踢出后来登录的,默认是false;即后者登录的用户踢出前者登录的用户;踢出顺序。
+// kickoutSessionControlFilter.setKickoutAfter(false);
+// //同一个用户最大的会话数,默认1;比如2的意思是同一个用户允许最多同时两个人登录;
+// kickoutSessionControlFilter.setMaxSession(1);
+// //被踢出后重定向到的地址;
+// kickoutSessionControlFilter.setKickoutUrl("/kickout");
+// return kickoutSessionControlFilter;
+// }
+//}
diff --git a/src/main/java/com/xuebusi/common/interceptor/InterceptorConfigurer.java b/src/main/java/com/xuebusi/common/interceptor/InterceptorConfigurer.java
index 5604988..7f8ca0f 100644
--- a/src/main/java/com/xuebusi/common/interceptor/InterceptorConfigurer.java
+++ b/src/main/java/com/xuebusi/common/interceptor/InterceptorConfigurer.java
@@ -20,7 +20,7 @@ public class InterceptorConfigurer extends WebMvcConfigurerAdapter {
*/
@Override
public void addInterceptors(InterceptorRegistry registry) {
- registry.addInterceptor(new CommonIntercepter()).addPathPatterns("/settings/**", "/my/**", "/courses/learning", "/message/**");
+ registry.addInterceptor(new CommonIntercepter()).addPathPatterns("/order/**", "/settings/**", "/my/**", "/courses/learning", "/message/**");
super.addInterceptors(registry);
}
diff --git a/src/main/java/com/xuebusi/common/listener/InitDataListener.java b/src/main/java/com/xuebusi/common/listener/InitDataListener.java
index 0e7ab48..1a6b4fd 100644
--- a/src/main/java/com/xuebusi/common/listener/InitDataListener.java
+++ b/src/main/java/com/xuebusi/common/listener/InitDataListener.java
@@ -31,29 +31,18 @@ public class InitDataListener implements InitializingBean/*, ServletContextAware
@Autowired
private LessonService lessonService;
- @Autowired
- private TeacherService teacherService;
-
@Autowired
private UserService userService;
- //private ServletContext servletContext;
-
@Override
public void afterPropertiesSet() throws Exception {
loginInfoCache();
courseCache();
courseDetailCache();
lessonCache();
- teacherCache();
userCache();
}
- /*@Override
- public void setServletContext(ServletContext servletContext) {
- this.servletContext = servletContext;
- }*/
-
/**
* 登录用户信息缓存
*/
@@ -106,19 +95,6 @@ private void lessonCache() {
logger.info(">>>>>> 缓存课时信息 >>>>>>\n\n");
}
- /**
- * 缓存讲师信息
- */
- private void teacherCache() {
- List teacherList = teacherService.findAll();
- if (teacherList != null && teacherList.size() > 0) {
- for (Teacher teacher : teacherList) {
- InitDataCacheMap.getTeacherCacheMap().put(String.valueOf(teacher.getId()), teacher);
- }
- }
- logger.info(">>>>>> 缓存讲师信息 >>>>>>\n\n");
- }
-
/**
* 缓存用户基本信息
*/
diff --git a/src/main/java/com/xuebusi/common/result/ResultModel.java b/src/main/java/com/xuebusi/common/result/ResultModel.java
index 739ea3f..7d9a38c 100644
--- a/src/main/java/com/xuebusi/common/result/ResultModel.java
+++ b/src/main/java/com/xuebusi/common/result/ResultModel.java
@@ -6,7 +6,7 @@
* 通用返回值
* Created by SYJ on 2017/5/19.
*/
-@JsonSerialize(include= JsonSerialize.Inclusion.NON_NULL)
+@JsonSerialize
public class ResultModel {
private Integer code;
diff --git a/src/main/java/com/xuebusi/common/shiro/ShiroRealm.java b/src/main/java/com/xuebusi/common/shiro/ShiroRealm.java
new file mode 100644
index 0000000..8a77e7f
--- /dev/null
+++ b/src/main/java/com/xuebusi/common/shiro/ShiroRealm.java
@@ -0,0 +1,85 @@
+//package com.xuebusi.common.shiro;
+//
+//import com.xuebusi.entity.LoginInfo;
+//import com.xuebusi.entity.SysUser;
+//import com.xuebusi.service.LoginService;
+//import org.apache.shiro.SecurityUtils;
+//import org.apache.shiro.authc.*;
+//import org.apache.shiro.authz.AuthorizationInfo;
+//import org.apache.shiro.authz.SimpleAuthorizationInfo;
+//import org.apache.shiro.realm.AuthorizingRealm;
+//import org.apache.shiro.subject.PrincipalCollection;
+//import org.apache.shiro.util.ByteSource;
+//import org.springframework.beans.factory.annotation.Autowired;
+//
+//import java.util.HashSet;
+//import java.util.Set;
+//
+///**
+// * shiro身份校验核心类
+// */
+//
+//public class ShiroRealm extends AuthorizingRealm {
+//
+// @Autowired
+// private LoginService loginService;
+//
+// /**
+// * 认证信息.(身份验证) : Authentication 是用来验证用户身份
+// *
+// * @param authcToken
+// * @return
+// * @throws AuthenticationException
+// */
+// @Override
+// protected AuthenticationInfo doGetAuthenticationInfo(
+// AuthenticationToken authcToken) throws AuthenticationException {
+// UsernamePasswordToken token = (UsernamePasswordToken) authcToken;
+// String username = token.getUsername();
+//
+// // 从数据库获取对应用户名密码的用户
+// LoginInfo loginInfo = loginService.findByUsername(username);
+// if (loginInfo != null) {
+// Object credentials = loginInfo.getPassword();//数据库中的密码
+// ByteSource credentialsSalt = ByteSource.Util.bytes(username);//用户名作为盐值
+// String realm = getName();//当前Realm对象的名字
+// return new SimpleAuthenticationInfo(loginInfo.getUsername(), credentials, credentialsSalt, realm);
+// }else {
+// throw new AccountException("帐号或密码不正确!");
+// }
+// }
+//
+// /**
+// * 授权
+// */
+// @Override
+// protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
+// System.out.println("权限认证方法:ShiroRealm.doGetAuthorizationInfo()");
+// SysUser user = (SysUser)SecurityUtils.getSubject().getPrincipal();
+// String userId = user.getId();
+// SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();
+// //根据用户ID查询角色(role),放入到Authorization里。
+// /*Map map = new HashMap();
+// map.put("user_id", userId);
+// List roleList = sysRoleService.selectByMap(map);
+// Set roleSet = new HashSet();
+// for(SysRole role : roleList){
+// roleSet.add(role.getType());
+// }*/
+// Set roleSet = new HashSet();
+// roleSet.add("100002");
+// info.setRoles(roleSet);
+// //根据用户ID查询权限(permission),放入到Authorization里。
+// /*List permissionList = sysPermissionService.selectByMap(map);
+// Set permissionSet = new HashSet();
+// for(SysPermission Permission : permissionList){
+// permissionSet.add(Permission.getName());
+// }*/
+// Set permissionSet = new HashSet();
+// permissionSet.add("权限添加");
+// permissionSet.add("权限删除");
+// info.setStringPermissions(permissionSet);
+// return info;
+// }
+//
+//}
diff --git a/src/main/java/com/xuebusi/common/shiro/ShiroService.java b/src/main/java/com/xuebusi/common/shiro/ShiroService.java
new file mode 100644
index 0000000..2a16a4d
--- /dev/null
+++ b/src/main/java/com/xuebusi/common/shiro/ShiroService.java
@@ -0,0 +1,83 @@
+//package com.xuebusi.common.shiro;
+//
+//import com.xuebusi.entity.SysPermissionInit;
+//import com.xuebusi.service.SysPermissionInitService;
+//import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
+//import org.apache.shiro.web.filter.mgt.DefaultFilterChainManager;
+//import org.apache.shiro.web.filter.mgt.PathMatchingFilterChainResolver;
+//import org.apache.shiro.web.servlet.AbstractShiroFilter;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.stereotype.Service;
+//
+//import java.util.LinkedHashMap;
+//import java.util.List;
+//import java.util.Map;
+//
+///**
+// * 热加载链接权限
+// */
+//@Service
+//public class ShiroService {
+//
+// @Autowired
+// ShiroFilterFactoryBean shiroFilterFactoryBean;
+//
+// @Autowired
+// SysPermissionInitService sysPermissionInitService;
+//
+// /**
+// * 初始化权限
+// */
+// public Map loadFilterChainDefinitions() {
+// // 权限控制map.从数据库获取
+// Map filterChainDefinitionMap = new LinkedHashMap();
+// List list = sysPermissionInitService.selectAll();
+//
+// for (SysPermissionInit sysPermissionInit : list) {
+// filterChainDefinitionMap.put(sysPermissionInit.getUrl(),
+// sysPermissionInit.getPermissionInit());
+// }
+// return filterChainDefinitionMap;
+// }
+//
+// /**
+// * 重新加载权限
+// */
+// public void updatePermission() {
+//
+// synchronized (shiroFilterFactoryBean) {
+//
+// AbstractShiroFilter shiroFilter = null;
+// try {
+// shiroFilter = (AbstractShiroFilter) shiroFilterFactoryBean
+// .getObject();
+// } catch (Exception e) {
+// throw new RuntimeException(
+// "get ShiroFilter from shiroFilterFactoryBean error!");
+// }
+//
+// PathMatchingFilterChainResolver filterChainResolver = (PathMatchingFilterChainResolver) shiroFilter
+// .getFilterChainResolver();
+// DefaultFilterChainManager manager = (DefaultFilterChainManager) filterChainResolver
+// .getFilterChainManager();
+//
+// // 清空老的权限控制
+// manager.getFilterChains().clear();
+//
+// shiroFilterFactoryBean.getFilterChainDefinitionMap().clear();
+// shiroFilterFactoryBean
+// .setFilterChainDefinitionMap(loadFilterChainDefinitions());
+// // 重新构建生成
+// Map chains = shiroFilterFactoryBean
+// .getFilterChainDefinitionMap();
+// for (Map.Entry entry : chains.entrySet()) {
+// String url = entry.getKey();
+// String chainDefinition = entry.getValue().trim()
+// .replace(" ", "");
+// manager.createChain(url, chainDefinition);
+// }
+//
+// System.out.println("更新权限成功!!");
+// }
+// }
+//}
diff --git a/src/main/java/com/xuebusi/common/shiro/filter/KickoutSessionControlFilter.java b/src/main/java/com/xuebusi/common/shiro/filter/KickoutSessionControlFilter.java
new file mode 100644
index 0000000..d6eb9a1
--- /dev/null
+++ b/src/main/java/com/xuebusi/common/shiro/filter/KickoutSessionControlFilter.java
@@ -0,0 +1,156 @@
+//package com.xuebusi.common.shiro.filter;
+//
+//import com.alibaba.fastjson.JSON;
+//import com.xuebusi.entity.SysUser;
+//import org.apache.shiro.cache.Cache;
+//import org.apache.shiro.cache.CacheManager;
+//import org.apache.shiro.session.Session;
+//import org.apache.shiro.session.mgt.DefaultSessionKey;
+//import org.apache.shiro.session.mgt.SessionManager;
+//import org.apache.shiro.subject.Subject;
+//import org.apache.shiro.web.filter.AccessControlFilter;
+//import org.apache.shiro.web.util.WebUtils;
+//
+//import javax.servlet.ServletRequest;
+//import javax.servlet.ServletResponse;
+//import javax.servlet.http.HttpServletRequest;
+//import java.io.IOException;
+//import java.io.PrintWriter;
+//import java.io.Serializable;
+//import java.util.Deque;
+//import java.util.HashMap;
+//import java.util.LinkedList;
+//import java.util.Map;
+//
+///**
+// * 1.读取当前登录用户名,获取在缓存中的sessionId队列
+// * 2.判断队列的长度,大于最大登录限制的时候,按踢出规则
+// * 将之前的sessionId中的session域中存入kickout:true,并更新队列缓存
+// * 3.判断当前登录的session域中的kickout如果为true,
+// * 想将其做退出登录处理,然后再重定向到踢出登录提示页面
+// */
+//public class KickoutSessionControlFilter extends AccessControlFilter {
+//
+// private String kickoutUrl; //踢出后到的地址
+// private boolean kickoutAfter = false; //踢出之前登录的/之后登录的用户 默认踢出之前登录的用户
+// private int maxSession = 1; //同一个帐号最大会话数 默认1
+//
+// private SessionManager sessionManager;
+// private Cache> cache;
+//
+// public void setKickoutUrl(String kickoutUrl) {
+// this.kickoutUrl = kickoutUrl;
+// }
+//
+// public void setKickoutAfter(boolean kickoutAfter) {
+// this.kickoutAfter = kickoutAfter;
+// }
+//
+// public void setMaxSession(int maxSession) {
+// this.maxSession = maxSession;
+// }
+//
+// public void setSessionManager(SessionManager sessionManager) {
+// this.sessionManager = sessionManager;
+// }
+// //设置Cache的key的前缀
+// public void setCacheManager(CacheManager cacheManager) {
+// this.cache = cacheManager.getCache("shiro_redis_cache");
+// }
+//
+// @Override
+// protected boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object mappedValue) throws Exception {
+// return false;
+// }
+//
+// @Override
+// protected boolean onAccessDenied(ServletRequest request, ServletResponse response) throws Exception {
+// Subject subject = getSubject(request, response);
+// if(!subject.isAuthenticated() && !subject.isRemembered()) {
+// //如果没有登录,直接进行之后的流程
+// return true;
+// }
+// Session session = subject.getSession();
+// SysUser user = (SysUser) subject.getPrincipal();
+// String username = user.getNickname();
+// Serializable sessionId = session.getId();
+//
+// //读取缓存 没有就存入
+// Deque deque = cache.get(username);
+//
+// //如果此用户没有session队列,也就是还没有登录过,缓存中没有
+// //就new一个空队列,不然deque对象为空,会报空指针
+// if(deque==null){
+// deque = new LinkedList<>();
+// }
+//
+// //如果队列里没有此sessionId,且用户没有被踢出;放入队列
+// if(!deque.contains(sessionId) && session.getAttribute("kickout") == null) {
+// //将sessionId存入队列
+// deque.push(sessionId);
+// //将用户的sessionId队列缓存
+// cache.put(username, deque);
+// }
+//
+// //如果队列里的sessionId数超出最大会话数,开始踢人
+// while(deque.size() > maxSession) {
+// Serializable kickoutSessionId = null;
+// if(kickoutAfter) { //如果踢出后者
+// kickoutSessionId = deque.removeFirst();
+// //踢出后再更新下缓存队列
+// cache.put(username, deque);
+// } else { //否则踢出前者
+// kickoutSessionId = deque.removeLast();
+// //踢出后再更新下缓存队列
+// cache.put(username, deque);
+// }
+//
+// try {
+// //获取被踢出的sessionId的session对象
+// Session kickoutSession = sessionManager.getSession(new DefaultSessionKey(kickoutSessionId));
+// if(kickoutSession != null) {
+// //设置会话的kickout属性表示踢出了
+// kickoutSession.setAttribute("kickout", true);
+// }
+// } catch (Exception e) {//ignore exception
+// }
+// }
+//
+// //如果被踢出了,直接退出,重定向到踢出后的地址
+// if ((Boolean)session.getAttribute("kickout")!=null&&(Boolean)session.getAttribute("kickout") == true) {
+// //会话被踢出了
+// try {
+// //退出登录
+// subject.logout();
+// } catch (Exception e) { //ignore
+// }
+// saveRequest(request);
+//
+// Map resultMap = new HashMap();
+// //判断是不是Ajax请求
+// if ("XMLHttpRequest".equalsIgnoreCase(((HttpServletRequest) request).getHeader("X-Requested-With"))) {
+// resultMap.put("user_status", "300");
+// resultMap.put("message", "您已经在其他地方登录,请重新登录!");
+// //输出json串
+// out(response, resultMap);
+// }else{
+// //重定向
+// WebUtils.issueRedirect(request, response, kickoutUrl);
+// }
+// return false;
+// }
+// return true;
+// }
+// private void out(ServletResponse hresponse, Map resultMap)
+// throws IOException {
+// try {
+// hresponse.setCharacterEncoding("UTF-8");
+// PrintWriter out = hresponse.getWriter();
+// out.println(JSON.toJSONString(resultMap));
+// out.flush();
+// out.close();
+// } catch (Exception e) {
+// System.err.println("KickoutSessionFilter.class 输出JSON异常,可以忽略。");
+// }
+// }
+//}
diff --git a/src/main/java/com/xuebusi/common/utils/FileUtil.java b/src/main/java/com/xuebusi/common/utils/FileUtil.java
index 2c7eb76..d60fffa 100644
--- a/src/main/java/com/xuebusi/common/utils/FileUtil.java
+++ b/src/main/java/com/xuebusi/common/utils/FileUtil.java
@@ -1,21 +1,14 @@
package com.xuebusi.common.utils;
-import com.alibaba.fastjson.JSON;
-import freemarker.template.Configuration;
-import freemarker.template.Template;
import java.io.BufferedReader;
-import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
-import java.io.OutputStreamWriter;
import java.io.RandomAccessFile;
-import java.io.StringWriter;
import java.util.Enumeration;
-import java.util.Map;
import java.util.Properties;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
@@ -33,65 +26,6 @@ public class FileUtil {
public FileUtil() {
}
- public static void createFileTemplate(Map dataMap, String templateName, String templateUrl, String fileUrl) {
- try {
- Configuration e = new Configuration();
- e.setDefaultEncoding("UTF-8");
- e.setDirectoryForTemplateLoading(new File(templateUrl));
- Template template = e.getTemplate(templateName);
- template.setEncoding("UTF-8");
- File outFile = new File(fileUrl);
- if(!outFile.getParentFile().exists()) {
- outFile.getParentFile().mkdirs();
- }
-
- BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "UTF-8"));
- template.process(dataMap, out);
- out.flush();
- out.close();
- } catch (Exception ex) {
- LOGGER.error("createFileTemplate[dataMap{},templateUrl{},fileUrl{},exception{}]", new Object[]{JSON.toJSONString(dataMap), templateUrl, fileUrl, ex.getMessage()});
- }
-
- }
-
- public static String getFileTemplate(Map dataMap, String templateName, String templateUrl, String fileUrl) {
- try {
- Configuration e = new Configuration();
- e.setDefaultEncoding("UTF-8");
- e.setDirectoryForTemplateLoading(new File(templateUrl));
- Template template = e.getTemplate(templateName);
- template.setEncoding("UTF-8");
- File outFile = new File(fileUrl);
- if(!outFile.getParentFile().exists()) {
- outFile.getParentFile().mkdirs();
- }
-
- StringWriter out = new StringWriter();
- template.process(dataMap, out);
- return out.toString();
- } catch (Exception var8) {
- LOGGER.error("createFileTemplate[dataMap{},templateUrl{},fileUrl{},exception{}]", new Object[]{JSON.toJSONString(dataMap), templateUrl, fileUrl, var8.getMessage()});
- return "";
- }
- }
-
- public static String getFileTemplate(Map dataMap, String templateName, Class classLoader, String prefix, String fileUrl) {
- try {
- Configuration e = new Configuration();
- e.setDefaultEncoding("UTF-8");
- e.setClassForTemplateLoading(classLoader, prefix);
- Template template = e.getTemplate(templateName);
- template.setEncoding("UTF-8");
- StringWriter out = new StringWriter();
- template.process(dataMap, out);
- return out.toString();
- } catch (Exception var8) {
- LOGGER.error("createFileTemplate[dataMap{},fileUrl{},exception{}]", new Object[]{JSON.toJSONString(dataMap), fileUrl, var8.getMessage()});
- return "";
- }
- }
-
public static Properties loadProperties(Class classz, String resources) {
InputStream inputstream = classz.getClassLoader().getResourceAsStream(resources);
Properties properties = new Properties();
diff --git a/src/main/java/com/xuebusi/common/utils/MD5Utils.java b/src/main/java/com/xuebusi/common/utils/MD5Utils.java
index b538c7f..ab29541 100644
--- a/src/main/java/com/xuebusi/common/utils/MD5Utils.java
+++ b/src/main/java/com/xuebusi/common/utils/MD5Utils.java
@@ -1,5 +1,7 @@
package com.xuebusi.common.utils;
+import org.apache.shiro.crypto.hash.SimpleHash;
+import org.apache.shiro.util.ByteSource;
import org.springframework.util.StringUtils;
import java.math.BigInteger;
@@ -8,6 +10,23 @@
public class MD5Utils {
+
+ public static final String MD5 = "MD5";//md5加密
+ public static final String HASH_ALGORITHM = "SHA-1";
+ public static final int HASH_ITERATIONS = 1024;//加密次数
+
+ /**
+ * md5盐值加密
+ * @param username
+ * @param password
+ * @return
+ */
+ public static String md5Salt(String username, String password) {
+ ByteSource salt = ByteSource.Util.bytes(username);//用户名作为盐值
+ SimpleHash simpleHash = new SimpleHash(MD5, password, salt, HASH_ITERATIONS);
+ return simpleHash.toString();
+ }
+
/**
* 对字符串进行Md5加密
*
@@ -38,9 +57,14 @@ public static String generatePasswordMD5(String input, String salt) {
}
return md5(salt + md5(input));
}
-
+
+ /**
+ * 加密测试
+ * @param args
+ */
public static void main(String[] args) {
- System.out.println(md5("111111"));;
+ //038bdaf98f2037b31f1e75b5b4c9b26e
+ System.out.println(MD5Utils.md5Salt("admin", "123456"));
}
}
diff --git a/src/main/java/com/xuebusi/common/utils/MyDES.java b/src/main/java/com/xuebusi/common/utils/MyDES.java
new file mode 100644
index 0000000..42f1bd4
--- /dev/null
+++ b/src/main/java/com/xuebusi/common/utils/MyDES.java
@@ -0,0 +1,85 @@
+package com.xuebusi.common.utils;
+
+import javax.crypto.Cipher;
+import javax.crypto.SecretKey;
+import javax.crypto.SecretKeyFactory;
+import javax.crypto.spec.DESKeySpec;
+import java.security.SecureRandom;
+
+/**
+ * DES加密解密
+ */
+public class MyDES {
+ /**
+ * DES算法密钥
+ */
+ private static final byte[] DES_KEY = { 21, 1, -110, 82, -32, -85, -128, -65 };
+
+ /**
+ * 数据加密,算法(DES)
+ *
+ * @param data
+ * 要进行加密的数据
+ * @return 加密后的数据
+ */
+ @SuppressWarnings("restriction")
+ public static String encryptBasedDes(String data) {
+ String encryptedData = null;
+ try {
+ // DES算法要求有一个可信任的随机数源
+ SecureRandom sr = new SecureRandom();
+ DESKeySpec deskey = new DESKeySpec(DES_KEY);
+ // 创建一个密匙工厂,然后用它把DESKeySpec转换成一个SecretKey对象
+ SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
+ SecretKey key = keyFactory.generateSecret(deskey);
+ // 加密对象
+ Cipher cipher = Cipher.getInstance("DES");
+ cipher.init(Cipher.ENCRYPT_MODE, key, sr);
+ // 加密,并把字节数组编码成字符串
+ encryptedData = new sun.misc.BASE64Encoder().encode(cipher.doFinal(data.getBytes()));
+ } catch (Exception e) {
+ // log.error("加密错误,错误信息:", e);
+ throw new RuntimeException("加密错误,错误信息:", e);
+ }
+ return encryptedData;
+ }
+
+ /**
+ * 数据解密,算法(DES)
+ *
+ * @param cryptData
+ * 加密数据
+ * @return 解密后的数据
+ */
+ @SuppressWarnings("restriction")
+ public static String decryptBasedDes(String cryptData) {
+ String decryptedData = null;
+ try {
+ // DES算法要求有一个可信任的随机数源
+ SecureRandom sr = new SecureRandom();
+ DESKeySpec deskey = new DESKeySpec(DES_KEY);
+ // 创建一个密匙工厂,然后用它把DESKeySpec转换成一个SecretKey对象
+ SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
+ SecretKey key = keyFactory.generateSecret(deskey);
+ // 解密对象
+ Cipher cipher = Cipher.getInstance("DES");
+ cipher.init(Cipher.DECRYPT_MODE, key, sr);
+ // 把字符串解码为字节数组,并解密
+ decryptedData = new String(cipher.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(cryptData)));
+ } catch (Exception e) {
+ // log.error("解密错误,错误信息:", e);
+ throw new RuntimeException("解密错误,错误信息:", e);
+ }
+ return decryptedData;
+ }
+
+ public static void main(String[] args) {
+ String str = "123456haiqin";
+ // DES数据加密
+ String s1 = encryptBasedDes(str);
+ System.out.println(s1);
+ // DES数据解密
+ String s2 = decryptBasedDes(s1);
+ System.err.println(s2);
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/xuebusi/common/vcode/Captcha.java b/src/main/java/com/xuebusi/common/vcode/Captcha.java
new file mode 100644
index 0000000..45158f3
--- /dev/null
+++ b/src/main/java/com/xuebusi/common/vcode/Captcha.java
@@ -0,0 +1,94 @@
+package com.xuebusi.common.vcode;
+
+import java.awt.*;
+import java.io.OutputStream;
+
+/**
+ * 验证码抽象类,暂时不支持中文
+ */
+public abstract class Captcha extends Randoms {
+ protected Font font = new Font("Verdana", Font.ITALIC | Font.BOLD, 28); // 字体
+ protected int len = 5; // 验证码随机字符长度
+ protected int width = 150; // 验证码显示跨度
+ protected int height = 40; // 验证码显示高度
+ private String chars = null; // 随机字符串
+
+ /**
+ * 生成随机字符数组
+ *
+ * @return 字符数组
+ */
+ protected char[] alphas() {
+ char[] cs = new char[len];
+ for (int i = 0; i < len; i++) {
+ cs[i] = alpha();
+ }
+ chars = new String(cs);
+ return cs;
+ }
+
+ public Font getFont() {
+ return font;
+ }
+
+ public void setFont(Font font) {
+ this.font = font;
+ }
+
+ public int getLen() {
+ return len;
+ }
+
+ public void setLen(int len) {
+ this.len = len;
+ }
+
+ public int getWidth() {
+ return width;
+ }
+
+ public void setWidth(int width) {
+ this.width = width;
+ }
+
+ public int getHeight() {
+ return height;
+ }
+
+ public void setHeight(int height) {
+ this.height = height;
+ }
+
+ /**
+ * 给定范围获得随机颜色
+ *
+ * @return Color 随机颜色
+ */
+ protected Color color(int fc, int bc) {
+ if (fc > 255)
+ fc = 255;
+ if (bc > 255)
+ bc = 255;
+ int r = fc + num(bc - fc);
+ int g = fc + num(bc - fc);
+ int b = fc + num(bc - fc);
+ return new Color(r, g, b);
+ }
+
+ /**
+ * 验证码输出,抽象方法,由子类实现
+ *
+ * @param os
+ * 输出流
+ */
+ public abstract void out(OutputStream os);
+
+ /**
+ * 获取随机字符串
+ *
+ * @return string
+ */
+ public String text() {
+ return chars;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/xuebusi/common/vcode/Encoder.java b/src/main/java/com/xuebusi/common/vcode/Encoder.java
new file mode 100644
index 0000000..9da85a7
--- /dev/null
+++ b/src/main/java/com/xuebusi/common/vcode/Encoder.java
@@ -0,0 +1,298 @@
+package com.xuebusi.common.vcode;
+import java.io.IOException;
+import java.io.OutputStream;
+
+public class Encoder
+{
+ private static final int EOF = -1;
+
+ private int imgW, imgH;
+ private byte[] pixAry;
+ private int initCodeSize;
+ private int remaining;
+ private int curPixel;
+
+ // GIFCOMPR.C - GIF Image compression routines
+ //
+ // Lempel-Ziv compression based on 'compress'. GIF modifications by
+ // David Rowley (mgardi@watdcsu.waterloo.edu)
+
+ // General DEFINEs
+
+ static final int BITS = 12;
+
+ static final int HSIZE = 5003; // 80% occupancy
+
+ // GIF Image compression - modified 'compress'
+ //
+ // Based on: compress.c - File compression ala IEEE Computer, June 1984.
+ //
+ // By Authors: Spencer W. Thomas (decvax!harpo!utah-cs!utah-gr!thomas)
+ // Jim McKie (decvax!mcvax!jim)
+ // Steve Davies (decvax!vax135!petsd!peora!srd)
+ // Ken Turkowski (decvax!decwrl!turtlevax!ken)
+ // James A. Woods (decvax!ihnp4!ames!jaw)
+ // Joe Orost (decvax!vax135!petsd!joe)
+
+ int n_bits; // number of bits/code
+ int maxbits = BITS; // user settable max # bits/code
+ int maxcode; // maximum code, given n_bits
+ int maxmaxcode = 1 << BITS; // should NEVER generate this code
+
+ int[] htab = new int[HSIZE];
+ int[] codetab = new int[HSIZE];
+
+ int hsize = HSIZE; // for dynamic table sizing
+
+ int free_ent = 0; // first unused entry
+
+ // block compression parameters -- after all codes are used up,
+ // and compression rate changes, start over.
+ boolean clear_flg = false;
+
+ // Algorithm: use open addressing double hashing (no chaining) on the
+ // prefix code / next character combination. We do a variant of Knuth's
+ // algorithm D (vol. 3, sec. 6.4) along with G. Knott's relatively-prime
+ // secondary probe. Here, the modular division first probe is gives way
+ // to a faster exclusive-or manipulation. Also do block compression with
+ // an adaptive reset, whereby the code table is cleared when the compression
+ // ratio decreases, but after the table fills. The variable-length output
+ // codes are re-sized at this point, and a special CLEAR code is generated
+ // for the decompressor. Late addition: construct the table according to
+ // file size for noticeable speed improvement on small files. Please direct
+ // questions about this implementation to ames!jaw.
+
+ int g_init_bits;
+
+ int ClearCode;
+ int EOFCode;
+
+ // output
+ //
+ // Output the given code.
+ // Inputs:
+ // code: A n_bits-bit integer. If == -1, then EOF. This assumes
+ // that n_bits =< wordsize - 1.
+ // Outputs:
+ // Outputs code to the file.
+ // Assumptions:
+ // Chars are 8 bits long.
+ // Algorithm:
+ // Maintain a BITS character long buffer (so that 8 codes will
+ // fit in it exactly). Use the VAX insv instruction to insert each
+ // code in turn. When the buffer fills up empty it and start over.
+
+ int cur_accum = 0;
+ int cur_bits = 0;
+
+ int masks[] =
+ {
+ 0x0000,
+ 0x0001,
+ 0x0003,
+ 0x0007,
+ 0x000F,
+ 0x001F,
+ 0x003F,
+ 0x007F,
+ 0x00FF,
+ 0x01FF,
+ 0x03FF,
+ 0x07FF,
+ 0x0FFF,
+ 0x1FFF,
+ 0x3FFF,
+ 0x7FFF,
+ 0xFFFF };
+
+ // Number of characters so far in this 'packet'
+ int a_count;
+
+ // Define the storage for the packet accumulator
+ byte[] accum = new byte[256];
+
+ //----------------------------------------------------------------------------
+ Encoder(int width, int height, byte[] pixels, int color_depth) {
+ imgW = width;
+ imgH = height;
+ pixAry = pixels;
+ initCodeSize = Math.max(2, color_depth);
+ }
+
+ // Add a character to the end of the current packet, and if it is 254
+ // characters, flush the packet to disk.
+ void char_out(byte c, OutputStream outs) throws IOException {
+ accum[a_count++] = c;
+ if (a_count >= 254)
+ flush_char(outs);
+ }
+
+ // Clear out the hash table
+
+ // table clear for block compress
+ void cl_block(OutputStream outs) throws IOException {
+ cl_hash(hsize);
+ free_ent = ClearCode + 2;
+ clear_flg = true;
+
+ output(ClearCode, outs);
+ }
+
+ // reset code table
+ void cl_hash(int hsize) {
+ for (int i = 0; i < hsize; ++i)
+ htab[i] = -1;
+ }
+
+ void compress(int init_bits, OutputStream outs) throws IOException {
+ int fcode;
+ int i /* = 0 */;
+ int c;
+ int ent;
+ int disp;
+ int hsize_reg;
+ int hshift;
+
+ // Set up the globals: g_init_bits - initial number of bits
+ g_init_bits = init_bits;
+
+ // Set up the necessary values
+ clear_flg = false;
+ n_bits = g_init_bits;
+ maxcode = MAXCODE(n_bits);
+
+ ClearCode = 1 << (init_bits - 1);
+ EOFCode = ClearCode + 1;
+ free_ent = ClearCode + 2;
+
+ a_count = 0; // clear packet
+
+ ent = nextPixel();
+
+ hshift = 0;
+ for (fcode = hsize; fcode < 65536; fcode *= 2)
+ ++hshift;
+ hshift = 8 - hshift; // set hash code range bound
+
+ hsize_reg = hsize;
+ cl_hash(hsize_reg); // clear hash table
+
+ output(ClearCode, outs);
+
+ outer_loop : while ((c = nextPixel()) != EOF) {
+ fcode = (c << maxbits) + ent;
+ i = (c << hshift) ^ ent; // xor hashing
+
+ if (htab[i] == fcode) {
+ ent = codetab[i];
+ continue;
+ } else if (htab[i] >= 0) // non-empty slot
+ {
+ disp = hsize_reg - i; // secondary hash (after G. Knott)
+ if (i == 0)
+ disp = 1;
+ do {
+ if ((i -= disp) < 0)
+ i += hsize_reg;
+
+ if (htab[i] == fcode) {
+ ent = codetab[i];
+ continue outer_loop;
+ }
+ } while (htab[i] >= 0);
+ }
+ output(ent, outs);
+ ent = c;
+ if (free_ent < maxmaxcode) {
+ codetab[i] = free_ent++; // code -> hashtable
+ htab[i] = fcode;
+ } else
+ cl_block(outs);
+ }
+ // Put out the final code.
+ output(ent, outs);
+ output(EOFCode, outs);
+ }
+
+ //----------------------------------------------------------------------------
+ void encode(OutputStream os) throws IOException {
+ os.write(initCodeSize); // write "initial code size" byte
+
+ remaining = imgW * imgH; // reset navigation variables
+ curPixel = 0;
+
+ compress(initCodeSize + 1, os); // compress and write the pixel data
+
+ os.write(0); // write block terminator
+ }
+
+ // Flush the packet to disk, and reset the accumulator
+ void flush_char(OutputStream outs) throws IOException {
+ if (a_count > 0) {
+ outs.write(a_count);
+ outs.write(accum, 0, a_count);
+ a_count = 0;
+ }
+ }
+
+ final int MAXCODE(int n_bits) {
+ return (1 << n_bits) - 1;
+ }
+
+ //----------------------------------------------------------------------------
+ // Return the next pixel from the image
+ //----------------------------------------------------------------------------
+ private int nextPixel() {
+ if (remaining == 0)
+ return EOF;
+
+ --remaining;
+
+ byte pix = pixAry[curPixel++];
+
+ return pix & 0xff;
+ }
+
+ void output(int code, OutputStream outs) throws IOException {
+ cur_accum &= masks[cur_bits];
+
+ if (cur_bits > 0)
+ cur_accum |= (code << cur_bits);
+ else
+ cur_accum = code;
+
+ cur_bits += n_bits;
+
+ while (cur_bits >= 8) {
+ char_out((byte) (cur_accum & 0xff), outs);
+ cur_accum >>= 8;
+ cur_bits -= 8;
+ }
+
+ // If the next entry is going to be too big for the code size,
+ // then increase it, if possible.
+ if (free_ent > maxcode || clear_flg) {
+ if (clear_flg) {
+ maxcode = MAXCODE(n_bits = g_init_bits);
+ clear_flg = false;
+ } else {
+ ++n_bits;
+ if (n_bits == maxbits)
+ maxcode = maxmaxcode;
+ else
+ maxcode = MAXCODE(n_bits);
+ }
+ }
+
+ if (code == EOFCode) {
+ // At EOF, write the rest of the buffer.
+ while (cur_bits > 0) {
+ char_out((byte) (cur_accum & 0xff), outs);
+ cur_accum >>= 8;
+ cur_bits -= 8;
+ }
+
+ flush_char(outs);
+ }
+ }
+}
diff --git a/src/main/java/com/xuebusi/common/vcode/GifCaptcha.java b/src/main/java/com/xuebusi/common/vcode/GifCaptcha.java
new file mode 100644
index 0000000..ddf021d
--- /dev/null
+++ b/src/main/java/com/xuebusi/common/vcode/GifCaptcha.java
@@ -0,0 +1,113 @@
+package com.xuebusi.common.vcode;
+
+import java.awt.*;
+import java.awt.image.BufferedImage;
+import java.io.IOException;
+import java.io.OutputStream;
+
+/**
+ * Gif验证码类
+ */
+public class GifCaptcha extends Captcha
+{
+ public GifCaptcha()
+ {
+ }
+
+ public GifCaptcha(int width,int height){
+ this.width = width;
+ this.height = height;
+ }
+
+ public GifCaptcha(int width,int height,int len){
+ this(width,height);
+ this.len = len;
+ }
+
+ public GifCaptcha(int width,int height,int len,Font font)
+ {
+ this(width,height,len);
+ this.font = font;
+ }
+
+ @Override
+ public void out(OutputStream os)
+ {
+ try
+ {
+ GifEncoder gifEncoder = new GifEncoder(); // gif编码类,这个利用了洋人写的编码类,所有类都在附件中
+ //生成字符
+ gifEncoder.start(os);
+ gifEncoder.setQuality(180);
+ gifEncoder.setDelay(100);
+ gifEncoder.setRepeat(0);
+ BufferedImage frame;
+ char[] rands =alphas();
+ Color fontcolor[]=new Color[len];
+ for(int i=0;i>1) ;
+ int w = width/len;
+ g2d.setFont(font);
+ for(int i=0;i len ? (num *r - s) : num * r;
+ }
+
+}
diff --git a/src/main/java/com/xuebusi/common/vcode/GifEncoder.java b/src/main/java/com/xuebusi/common/vcode/GifEncoder.java
new file mode 100644
index 0000000..c2fa005
--- /dev/null
+++ b/src/main/java/com/xuebusi/common/vcode/GifEncoder.java
@@ -0,0 +1,466 @@
+package com.xuebusi.common.vcode;
+
+import java.awt.*;
+import java.awt.image.BufferedImage;
+import java.awt.image.DataBufferByte;
+import java.io.*;
+
+public class GifEncoder
+{
+ protected int width; // image size
+ protected int height;
+ protected Color transparent = null; // transparent color if given
+ protected int transIndex; // transparent index in color table
+ protected int repeat = -1; // no repeat
+ protected int delay = 0; // frame delay (hundredths)
+ protected boolean started = false; // ready to output frames
+ protected OutputStream out;
+ protected BufferedImage image; // current frame
+ protected byte[] pixels; // BGR byte array from frame
+ protected byte[] indexedPixels; // converted frame indexed to palette
+ protected int colorDepth; // number of bit planes
+ protected byte[] colorTab; // RGB palette
+ protected boolean[] usedEntry = new boolean[256]; // active palette entries
+ protected int palSize = 7; // color table size (bits-1)
+ protected int dispose = -1; // disposal code (-1 = use default)
+ protected boolean closeStream = false; // close stream when finished
+ protected boolean firstFrame = true;
+ protected boolean sizeSet = false; // if false, get size from first frame
+ protected int sample = 10; // default sample interval for quantizer
+
+ /**
+ * Sets the delay time between each frame, or changes it
+ * for subsequent frames (applies to last frame added).
+ *
+ * @param ms int delay time in milliseconds
+ */
+ public void setDelay(int ms) {
+ delay = Math.round(ms / 10.0f);
+ }
+
+ /**
+ * Sets the GIF frame disposal code for the last added frame
+ * and any subsequent frames. Default is 0 if no transparent
+ * color has been set, otherwise 2.
+ * @param code int disposal code.
+ */
+ public void setDispose(int code) {
+ if (code >= 0) {
+ dispose = code;
+ }
+ }
+
+ /**
+ * Sets the number of times the set of GIF frames
+ * should be played. Default is 1; 0 means play
+ * indefinitely. Must be invoked before the first
+ * image is added.
+ *
+ * @param iter int number of iterations.
+ * @return
+ */
+ public void setRepeat(int iter) {
+ if (iter >= 0) {
+ repeat = iter;
+ }
+ }
+
+ /**
+ * Sets the transparent color for the last added frame
+ * and any subsequent frames.
+ * Since all colors are subject to modification
+ * in the quantization process, the color in the final
+ * palette for each frame closest to the given color
+ * becomes the transparent color for that frame.
+ * May be set to null to indicate no transparent color.
+ *
+ * @param c Color to be treated as transparent on display.
+ */
+ public void setTransparent(Color c) {
+ transparent = c;
+ }
+
+ /**
+ * Adds next GIF frame. The frame is not written immediately, but is
+ * actually deferred until the next frame is received so that timing
+ * data can be inserted. Invoking finish() flushes all
+ * frames. If setSize was not invoked, the size of the
+ * first image is used for all subsequent frames.
+ *
+ * @param im BufferedImage containing frame to write.
+ * @return true if successful.
+ */
+ public boolean addFrame(BufferedImage im) {
+ if ((im == null) || !started) {
+ return false;
+ }
+ boolean ok = true;
+ try {
+ if (!sizeSet) {
+ // use first frame's size
+ setSize(im.getWidth(), im.getHeight());
+ }
+ image = im;
+ getImagePixels(); // convert to correct format if necessary
+ analyzePixels(); // build color table & map pixels
+ if (firstFrame) {
+ writeLSD(); // logical screen descriptior
+ writePalette(); // global color table
+ if (repeat >= 0) {
+ // use NS app extension to indicate reps
+ writeNetscapeExt();
+ }
+ }
+ writeGraphicCtrlExt(); // write graphic control extension
+ writeImageDesc(); // image descriptor
+ if (!firstFrame) {
+ writePalette(); // local color table
+ }
+ writePixels(); // encode and write pixel data
+ firstFrame = false;
+ } catch (IOException e) {
+ ok = false;
+ }
+
+ return ok;
+ }
+
+ //added by alvaro
+ public boolean outFlush() {
+ boolean ok = true;
+ try {
+ out.flush();
+ return ok;
+ } catch (IOException e) {
+ ok = false;
+ }
+
+ return ok;
+ }
+
+ public byte[] getFrameByteArray() {
+ return ((ByteArrayOutputStream) out).toByteArray();
+ }
+
+ /**
+ * Flushes any pending data and closes output file.
+ * If writing to an OutputStream, the stream is not
+ * closed.
+ */
+ public boolean finish() {
+ if (!started) return false;
+ boolean ok = true;
+ started = false;
+ try {
+ out.write(0x3b); // gif trailer
+ out.flush();
+ if (closeStream) {
+ out.close();
+ }
+ } catch (IOException e) {
+ ok = false;
+ }
+
+ return ok;
+ }
+
+ public void reset() {
+ // reset for subsequent use
+ transIndex = 0;
+ out = null;
+ image = null;
+ pixels = null;
+ indexedPixels = null;
+ colorTab = null;
+ closeStream = false;
+ firstFrame = true;
+ }
+
+ /**
+ * Sets frame rate in frames per second. Equivalent to
+ * setDelay(1000/fps).
+ *
+ * @param fps float frame rate (frames per second)
+ */
+ public void setFrameRate(float fps) {
+ if (fps != 0f) {
+ delay = Math.round(100f / fps);
+ }
+ }
+
+ /**
+ * Sets quality of color quantization (conversion of images
+ * to the maximum 256 colors allowed by the GIF specification).
+ * Lower values (minimum = 1) produce better colors, but slow
+ * processing significantly. 10 is the default, and produces
+ * good color mapping at reasonable speeds. Values greater
+ * than 20 do not yield significant improvements in speed.
+ *
+ * @param quality int greater than 0.
+ * @return
+ */
+ public void setQuality(int quality) {
+ if (quality < 1) quality = 1;
+ sample = quality;
+ }
+
+ /**
+ * Sets the GIF frame size. The default size is the
+ * size of the first frame added if this method is
+ * not invoked.
+ *
+ * @param w int frame width.
+ * @param h int frame width.
+ */
+ public void setSize(int w, int h) {
+ if (started && !firstFrame) return;
+ width = w;
+ height = h;
+ if (width < 1) width = 320;
+ if (height < 1) height = 240;
+ sizeSet = true;
+ }
+
+ /**
+ * Initiates GIF file creation on the given stream. The stream
+ * is not closed automatically.
+ *
+ * @param os OutputStream on which GIF images are written.
+ * @return false if initial write failed.
+ */
+ public boolean start(OutputStream os) {
+ if (os == null) return false;
+ boolean ok = true;
+ closeStream = false;
+ out = os;
+ try {
+ writeString("GIF89a"); // header
+ } catch (IOException e) {
+ ok = false;
+ }
+ return started = ok;
+ }
+
+ /**
+ * Initiates writing of a GIF file with the specified name.
+ *
+ * @param file String containing output file name.
+ * @return false if open or initial write failed.
+ */
+ public boolean start(String file) {
+ boolean ok = true;
+ try {
+ out = new BufferedOutputStream(new FileOutputStream(file));
+ ok = start(out);
+ closeStream = true;
+ } catch (IOException e) {
+ ok = false;
+ }
+ return started = ok;
+ }
+
+ /**
+ * Analyzes image colors and creates color map.
+ */
+ protected void analyzePixels() {
+ int len = pixels.length;
+ int nPix = len / 3;
+ indexedPixels = new byte[nPix];
+ Quant nq = new Quant(pixels, len, sample);
+ // initialize quantizer
+ colorTab = nq.process(); // create reduced palette
+ // convert map from BGR to RGB
+ for (int i = 0; i < colorTab.length; i += 3) {
+ byte temp = colorTab[i];
+ colorTab[i] = colorTab[i + 2];
+ colorTab[i + 2] = temp;
+ usedEntry[i / 3] = false;
+ }
+ // map image pixels to new palette
+ int k = 0;
+ for (int i = 0; i < nPix; i++) {
+ int index =
+ nq.map(pixels[k++] & 0xff,
+ pixels[k++] & 0xff,
+ pixels[k++] & 0xff);
+ usedEntry[index] = true;
+ indexedPixels[i] = (byte) index;
+ }
+ pixels = null;
+ colorDepth = 8;
+ palSize = 7;
+ // get closest match to transparent color if specified
+ if (transparent != null) {
+ transIndex = findClosest(transparent);
+ }
+ }
+
+ /**
+ * Returns index of palette color closest to c
+ *
+ */
+ protected int findClosest(Color c) {
+ if (colorTab == null) return -1;
+ int r = c.getRed();
+ int g = c.getGreen();
+ int b = c.getBlue();
+ int minpos = 0;
+ int dmin = 256 * 256 * 256;
+ int len = colorTab.length;
+ for (int i = 0; i < len;) {
+ int dr = r - (colorTab[i++] & 0xff);
+ int dg = g - (colorTab[i++] & 0xff);
+ int db = b - (colorTab[i] & 0xff);
+ int d = dr * dr + dg * dg + db * db;
+ int index = i / 3;
+ if (usedEntry[index] && (d < dmin)) {
+ dmin = d;
+ minpos = index;
+ }
+ i++;
+ }
+ return minpos;
+ }
+
+ /**
+ * Extracts image pixels into byte array "pixels"
+ */
+ protected void getImagePixels() {
+ int w = image.getWidth();
+ int h = image.getHeight();
+ int type = image.getType();
+ if ((w != width)
+ || (h != height)
+ || (type != BufferedImage.TYPE_3BYTE_BGR)) {
+ // create new image with right size/format
+ BufferedImage temp =
+ new BufferedImage(width, height, BufferedImage.TYPE_3BYTE_BGR);
+ Graphics2D g = temp.createGraphics();
+ g.drawImage(image, 0, 0, null);
+ image = temp;
+ }
+ pixels = ((DataBufferByte) image.getRaster().getDataBuffer()).getData();
+ }
+
+ /**
+ * Writes Graphic Control Extension
+ */
+ protected void writeGraphicCtrlExt() throws IOException {
+ out.write(0x21); // extension introducer
+ out.write(0xf9); // GCE label
+ out.write(4); // data block size
+ int transp, disp;
+ if (transparent == null) {
+ transp = 0;
+ disp = 0; // dispose = no action
+ } else {
+ transp = 1;
+ disp = 2; // force clear if using transparent color
+ }
+ if (dispose >= 0) {
+ disp = dispose & 7; // user override
+ }
+ disp <<= 2;
+
+ // packed fields
+ out.write(0 | // 1:3 reserved
+ disp | // 4:6 disposal
+ 0 | // 7 user input - 0 = none
+ transp); // 8 transparency flag
+
+ writeShort(delay); // delay x 1/100 sec
+ out.write(transIndex); // transparent color index
+ out.write(0); // block terminator
+ }
+
+ /**
+ * Writes Image Descriptor
+ */
+ protected void writeImageDesc() throws IOException {
+ out.write(0x2c); // image separator
+ writeShort(0); // image position x,y = 0,0
+ writeShort(0);
+ writeShort(width); // image size
+ writeShort(height);
+ // packed fields
+ if (firstFrame) {
+ // no LCT - GCT is used for first (or only) frame
+ out.write(0);
+ } else {
+ // specify normal LCT
+ out.write(0x80 | // 1 local color table 1=yes
+ 0 | // 2 interlace - 0=no
+ 0 | // 3 sorted - 0=no
+ 0 | // 4-5 reserved
+ palSize); // 6-8 size of color table
+ }
+ }
+
+ /**
+ * Writes Logical Screen Descriptor
+ */
+ protected void writeLSD() throws IOException {
+ // logical screen size
+ writeShort(width);
+ writeShort(height);
+ // packed fields
+ out.write((0x80 | // 1 : global color table flag = 1 (gct used)
+ 0x70 | // 2-4 : color resolution = 7
+ 0x00 | // 5 : gct sort flag = 0
+ palSize)); // 6-8 : gct size
+
+ out.write(0); // background color index
+ out.write(0); // pixel aspect ratio - assume 1:1
+ }
+
+ /**
+ * Writes Netscape application extension to define
+ * repeat count.
+ */
+ protected void writeNetscapeExt() throws IOException {
+ out.write(0x21); // extension introducer
+ out.write(0xff); // app extension label
+ out.write(11); // block size
+ writeString("NETSCAPE" + "2.0"); // app id + auth code
+ out.write(3); // sub-block size
+ out.write(1); // loop sub-block id
+ writeShort(repeat); // loop count (extra iterations, 0=repeat forever)
+ out.write(0); // block terminator
+ }
+
+ /**
+ * Writes color table
+ */
+ protected void writePalette() throws IOException {
+ out.write(colorTab, 0, colorTab.length);
+ int n = (3 * 256) - colorTab.length;
+ for (int i = 0; i < n; i++) {
+ out.write(0);
+ }
+ }
+
+ /**
+ * Encodes and writes pixel data
+ */
+ protected void writePixels() throws IOException {
+ Encoder encoder = new Encoder(width, height, indexedPixels, colorDepth);
+ encoder.encode(out);
+ }
+
+ /**
+ * Write 16-bit value to output stream, LSB first
+ */
+ protected void writeShort(int value) throws IOException {
+ out.write(value & 0xff);
+ out.write((value >> 8) & 0xff);
+ }
+
+ /**
+ * Writes string to output stream
+ */
+ protected void writeString(String s) throws IOException {
+ for (int i = 0; i < s.length(); i++) {
+ out.write((byte) s.charAt(i));
+ }
+ }
+}
diff --git a/src/main/java/com/xuebusi/common/vcode/Quant.java b/src/main/java/com/xuebusi/common/vcode/Quant.java
new file mode 100644
index 0000000..a459769
--- /dev/null
+++ b/src/main/java/com/xuebusi/common/vcode/Quant.java
@@ -0,0 +1,437 @@
+package com.xuebusi.common.vcode;
+
+public class Quant
+{
+ protected static final int netsize = 256; /* number of colours used */
+
+ /* four primes near 500 - assume no image has a length so large */
+ /* that it is divisible by all four primes */
+ protected static final int prime1 = 499;
+ protected static final int prime2 = 491;
+ protected static final int prime3 = 487;
+ protected static final int prime4 = 503;
+
+ protected static final int minpicturebytes = (3 * prime4);
+ /* minimum size for input image */
+
+ /* Program Skeleton
+ ----------------
+ [select samplefac in range 1..30]
+ [read image from input file]
+ pic = (unsigned char*) malloc(3*width*height);
+ initnet(pic,3*width*height,samplefac);
+ learn();
+ unbiasnet();
+ [write output image header, using writecolourmap(f)]
+ inxbuild();
+ write output image using inxsearch(b,g,r) */
+
+ /* Network Definitions
+ ------------------- */
+
+ protected static final int maxnetpos = (netsize - 1);
+ protected static final int netbiasshift = 4; /* bias for colour values */
+ protected static final int ncycles = 100; /* no. of learning cycles */
+
+ /* defs for freq and bias */
+ protected static final int intbiasshift = 16; /* bias for fractions */
+ protected static final int intbias = (((int) 1) << intbiasshift);
+ protected static final int gammashift = 10; /* gamma = 1024 */
+ protected static final int gamma = (((int) 1) << gammashift);
+ protected static final int betashift = 10;
+ protected static final int beta = (intbias >> betashift); /* beta = 1/1024 */
+ protected static final int betagamma =
+ (intbias << (gammashift - betashift));
+
+ /* defs for decreasing radius factor */
+ protected static final int initrad = (netsize >> 3); /* for 256 cols, radius starts */
+ protected static final int radiusbiasshift = 6; /* at 32.0 biased by 6 bits */
+ protected static final int radiusbias = (((int) 1) << radiusbiasshift);
+ protected static final int initradius = (initrad * radiusbias); /* and decreases by a */
+ protected static final int radiusdec = 30; /* factor of 1/30 each cycle */
+
+ /* defs for decreasing alpha factor */
+ protected static final int alphabiasshift = 10; /* alpha starts at 1.0 */
+ protected static final int initalpha = (((int) 1) << alphabiasshift);
+
+ protected int alphadec; /* biased by 10 bits */
+
+ /* radbias and alpharadbias used for radpower calculation */
+ protected static final int radbiasshift = 8;
+ protected static final int radbias = (((int) 1) << radbiasshift);
+ protected static final int alpharadbshift = (alphabiasshift + radbiasshift);
+ protected static final int alpharadbias = (((int) 1) << alpharadbshift);
+
+ /* Types and Global Variables
+ -------------------------- */
+
+ protected byte[] thepicture; /* the input image itself */
+ protected int lengthcount; /* lengthcount = H*W*3 */
+
+ protected int samplefac; /* sampling factor 1..30 */
+
+ // typedef int pixel[4]; /* BGRc */
+ protected int[][] network; /* the network itself - [netsize][4] */
+
+ protected int[] netindex = new int[256];
+ /* for network lookup - really 256 */
+
+ protected int[] bias = new int[netsize];
+ /* bias and freq arrays for learning */
+ protected int[] freq = new int[netsize];
+ protected int[] radpower = new int[initrad];
+ /* radpower for precomputation */
+
+ /* Initialise network in range (0,0,0) to (255,255,255) and set parameters
+ ----------------------------------------------------------------------- */
+ public Quant(byte[] thepic, int len, int sample) {
+
+ int i;
+ int[] p;
+
+ thepicture = thepic;
+ lengthcount = len;
+ samplefac = sample;
+
+ network = new int[netsize][];
+ for (i = 0; i < netsize; i++) {
+ network[i] = new int[4];
+ p = network[i];
+ p[0] = p[1] = p[2] = (i << (netbiasshift + 8)) / netsize;
+ freq[i] = intbias / netsize; /* 1/netsize */
+ bias[i] = 0;
+ }
+ }
+
+ public byte[] colorMap() {
+ byte[] map = new byte[3 * netsize];
+ int[] index = new int[netsize];
+ for (int i = 0; i < netsize; i++)
+ index[network[i][3]] = i;
+ int k = 0;
+ for (int i = 0; i < netsize; i++) {
+ int j = index[i];
+ map[k++] = (byte) (network[j][0]);
+ map[k++] = (byte) (network[j][1]);
+ map[k++] = (byte) (network[j][2]);
+ }
+ return map;
+ }
+
+ /* Insertion sort of network and building of netindex[0..255] (to do after unbias)
+ ------------------------------------------------------------------------------- */
+ public void inxbuild() {
+
+ int i, j, smallpos, smallval;
+ int[] p;
+ int[] q;
+ int previouscol, startpos;
+
+ previouscol = 0;
+ startpos = 0;
+ for (i = 0; i < netsize; i++) {
+ p = network[i];
+ smallpos = i;
+ smallval = p[1]; /* index on g */
+ /* find smallest in i..netsize-1 */
+ for (j = i + 1; j < netsize; j++) {
+ q = network[j];
+ if (q[1] < smallval) { /* index on g */
+ smallpos = j;
+ smallval = q[1]; /* index on g */
+ }
+ }
+ q = network[smallpos];
+ /* swap p (i) and q (smallpos) entries */
+ if (i != smallpos) {
+ j = q[0];
+ q[0] = p[0];
+ p[0] = j;
+ j = q[1];
+ q[1] = p[1];
+ p[1] = j;
+ j = q[2];
+ q[2] = p[2];
+ p[2] = j;
+ j = q[3];
+ q[3] = p[3];
+ p[3] = j;
+ }
+ /* smallval entry is now in position i */
+ if (smallval != previouscol) {
+ netindex[previouscol] = (startpos + i) >> 1;
+ for (j = previouscol + 1; j < smallval; j++)
+ netindex[j] = i;
+ previouscol = smallval;
+ startpos = i;
+ }
+ }
+ netindex[previouscol] = (startpos + maxnetpos) >> 1;
+ for (j = previouscol + 1; j < 256; j++)
+ netindex[j] = maxnetpos; /* really 256 */
+ }
+
+ /* Main Learning Loop
+ ------------------ */
+ public void learn() {
+
+ int i, j, b, g, r;
+ int radius, rad, alpha, step, delta, samplepixels;
+ byte[] p;
+ int pix, lim;
+
+ if (lengthcount < minpicturebytes)
+ samplefac = 1;
+ alphadec = 30 + ((samplefac - 1) / 3);
+ p = thepicture;
+ pix = 0;
+ lim = lengthcount;
+ samplepixels = lengthcount / (3 * samplefac);
+ delta = samplepixels / ncycles;
+ alpha = initalpha;
+ radius = initradius;
+
+ rad = radius >> radiusbiasshift;
+ if (rad <= 1)
+ rad = 0;
+ for (i = 0; i < rad; i++)
+ radpower[i] =
+ alpha * (((rad * rad - i * i) * radbias) / (rad * rad));
+
+ //fprintf(stderr,"beginning 1D learning: initial radius=%d\n", rad);
+
+ if (lengthcount < minpicturebytes)
+ step = 3;
+ else if ((lengthcount % prime1) != 0)
+ step = 3 * prime1;
+ else {
+ if ((lengthcount % prime2) != 0)
+ step = 3 * prime2;
+ else {
+ if ((lengthcount % prime3) != 0)
+ step = 3 * prime3;
+ else
+ step = 3 * prime4;
+ }
+ }
+
+ i = 0;
+ while (i < samplepixels) {
+ b = (p[pix + 0] & 0xff) << netbiasshift;
+ g = (p[pix + 1] & 0xff) << netbiasshift;
+ r = (p[pix + 2] & 0xff) << netbiasshift;
+ j = contest(b, g, r);
+
+ altersingle(alpha, j, b, g, r);
+ if (rad != 0)
+ alterneigh(rad, j, b, g, r); /* alter neighbours */
+
+ pix += step;
+ if (pix >= lim)
+ pix -= lengthcount;
+
+ i++;
+ if (delta == 0)
+ delta = 1;
+ if (i % delta == 0) {
+ alpha -= alpha / alphadec;
+ radius -= radius / radiusdec;
+ rad = radius >> radiusbiasshift;
+ if (rad <= 1)
+ rad = 0;
+ for (j = 0; j < rad; j++)
+ radpower[j] =
+ alpha * (((rad * rad - j * j) * radbias) / (rad * rad));
+ }
+ }
+ //fprintf(stderr,"finished 1D learning: final alpha=%f !\n",((float)alpha)/initalpha);
+ }
+
+ /* Search for BGR values 0..255 (after net is unbiased) and return colour index
+ ---------------------------------------------------------------------------- */
+ public int map(int b, int g, int r) {
+
+ int i, j, dist, a, bestd;
+ int[] p;
+ int best;
+
+ bestd = 1000; /* biggest possible dist is 256*3 */
+ best = -1;
+ i = netindex[g]; /* index on g */
+ j = i - 1; /* start at netindex[g] and work outwards */
+
+ while ((i < netsize) || (j >= 0)) {
+ if (i < netsize) {
+ p = network[i];
+ dist = p[1] - g; /* inx key */
+ if (dist >= bestd)
+ i = netsize; /* stop iter */
+ else {
+ i++;
+ if (dist < 0)
+ dist = -dist;
+ a = p[0] - b;
+ if (a < 0)
+ a = -a;
+ dist += a;
+ if (dist < bestd) {
+ a = p[2] - r;
+ if (a < 0)
+ a = -a;
+ dist += a;
+ if (dist < bestd) {
+ bestd = dist;
+ best = p[3];
+ }
+ }
+ }
+ }
+ if (j >= 0) {
+ p = network[j];
+ dist = g - p[1]; /* inx key - reverse dif */
+ if (dist >= bestd)
+ j = -1; /* stop iter */
+ else {
+ j--;
+ if (dist < 0)
+ dist = -dist;
+ a = p[0] - b;
+ if (a < 0)
+ a = -a;
+ dist += a;
+ if (dist < bestd) {
+ a = p[2] - r;
+ if (a < 0)
+ a = -a;
+ dist += a;
+ if (dist < bestd) {
+ bestd = dist;
+ best = p[3];
+ }
+ }
+ }
+ }
+ }
+ return (best);
+ }
+ public byte[] process() {
+ learn();
+ unbiasnet();
+ inxbuild();
+ return colorMap();
+ }
+
+ /* Unbias network to give byte values 0..255 and record position i to prepare for sort
+ ----------------------------------------------------------------------------------- */
+ public void unbiasnet() {
+
+ int i;// j;
+
+ for (i = 0; i < netsize; i++) {
+ network[i][0] >>= netbiasshift;
+ network[i][1] >>= netbiasshift;
+ network[i][2] >>= netbiasshift;
+ network[i][3] = i; /* record colour no */
+ }
+ }
+
+ /* Move adjacent neurons by precomputed alpha*(1-((i-j)^2/[r]^2)) in radpower[|i-j|]
+ --------------------------------------------------------------------------------- */
+ protected void alterneigh(int rad, int i, int b, int g, int r) {
+
+ int j, k, lo, hi, a, m;
+ int[] p;
+
+ lo = i - rad;
+ if (lo < -1)
+ lo = -1;
+ hi = i + rad;
+ if (hi > netsize)
+ hi = netsize;
+
+ j = i + 1;
+ k = i - 1;
+ m = 1;
+ while ((j < hi) || (k > lo)) {
+ a = radpower[m++];
+ if (j < hi) {
+ p = network[j++];
+ try {
+ p[0] -= (a * (p[0] - b)) / alpharadbias;
+ p[1] -= (a * (p[1] - g)) / alpharadbias;
+ p[2] -= (a * (p[2] - r)) / alpharadbias;
+ } catch (Exception e) {
+ } // prevents 1.3 miscompilation
+ }
+ if (k > lo) {
+ p = network[k--];
+ try {
+ p[0] -= (a * (p[0] - b)) / alpharadbias;
+ p[1] -= (a * (p[1] - g)) / alpharadbias;
+ p[2] -= (a * (p[2] - r)) / alpharadbias;
+ } catch (Exception e) {
+ }
+ }
+ }
+ }
+
+ /* Move neuron i towards biased (b,g,r) by factor alpha
+ ---------------------------------------------------- */
+ protected void altersingle(int alpha, int i, int b, int g, int r) {
+
+ /* alter hit neuron */
+ int[] n = network[i];
+ n[0] -= (alpha * (n[0] - b)) / initalpha;
+ n[1] -= (alpha * (n[1] - g)) / initalpha;
+ n[2] -= (alpha * (n[2] - r)) / initalpha;
+ }
+
+ /* Search for biased BGR values
+ ---------------------------- */
+ protected int contest(int b, int g, int r) {
+
+ /* finds closest neuron (min dist) and updates freq */
+ /* finds best neuron (min dist-bias) and returns position */
+ /* for frequently chosen neurons, freq[i] is high and bias[i] is negative */
+ /* bias[i] = gamma*((1/netsize)-freq[i]) */
+
+ int i, dist, a, biasdist, betafreq;
+ int bestpos, bestbiaspos, bestd, bestbiasd;
+ int[] n;
+
+ bestd = ~(((int) 1) << 31);
+ bestbiasd = bestd;
+ bestpos = -1;
+ bestbiaspos = bestpos;
+
+ for (i = 0; i < netsize; i++) {
+ n = network[i];
+ dist = n[0] - b;
+ if (dist < 0)
+ dist = -dist;
+ a = n[1] - g;
+ if (a < 0)
+ a = -a;
+ dist += a;
+ a = n[2] - r;
+ if (a < 0)
+ a = -a;
+ dist += a;
+ if (dist < bestd) {
+ bestd = dist;
+ bestpos = i;
+ }
+ biasdist = dist - ((bias[i]) >> (intbiasshift - netbiasshift));
+ if (biasdist < bestbiasd) {
+ bestbiasd = biasdist;
+ bestbiaspos = i;
+ }
+ betafreq = (freq[i] >> betashift);
+ freq[i] -= betafreq;
+ bias[i] += (betafreq << gammashift);
+ }
+ freq[bestpos] += beta;
+ bias[bestpos] -= betagamma;
+ return (bestbiaspos);
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/xuebusi/common/vcode/Randoms.java b/src/main/java/com/xuebusi/common/vcode/Randoms.java
new file mode 100644
index 0000000..9617238
--- /dev/null
+++ b/src/main/java/com/xuebusi/common/vcode/Randoms.java
@@ -0,0 +1,40 @@
+package com.xuebusi.common.vcode;
+
+import java.util.Random;
+
+/**
+ * 随机工具类
+ */
+public class Randoms
+{
+ private static final Random RANDOM = new Random();
+ //定义验证码字符.去除了O和I等容易混淆的字母
+ public static final char ALPHA[]={'A','B','C','D','E','F','G','H','G','K','M','N','P','Q','R','S','T','U','V','W','X','Y','Z'
+ ,'a','b','c','d','e','f','g','h','i','j','k','m','n','p','q','r','s','t','u','v','w','x','y','z','2','3','4','5','6','7','8','9'};
+
+ /**
+ * 产生两个数之间的随机数
+ * @param min 小数
+ * @param max 比min大的数
+ * @return int 随机数字
+ */
+ public static int num(int min, int max)
+ {
+ return min + RANDOM.nextInt(max - min);
+ }
+
+ /**
+ * 产生0--num的随机数,不包括num
+ * @param num 数字
+ * @return int 随机数字
+ */
+ public static int num(int num)
+ {
+ return RANDOM.nextInt(num);
+ }
+
+ public static char alpha()
+ {
+ return ALPHA[num(0, ALPHA.length)];
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/xuebusi/common/vcode/SpecCaptcha.java b/src/main/java/com/xuebusi/common/vcode/SpecCaptcha.java
new file mode 100644
index 0000000..7e92600
--- /dev/null
+++ b/src/main/java/com/xuebusi/common/vcode/SpecCaptcha.java
@@ -0,0 +1,93 @@
+package com.xuebusi.common.vcode;
+
+import javax.imageio.ImageIO;
+import java.awt.*;
+import java.awt.image.BufferedImage;
+import java.io.IOException;
+import java.io.OutputStream;
+
+/**
+ * png格式验证码
+ */
+public class SpecCaptcha extends Captcha
+{
+ public SpecCaptcha()
+ {
+ }
+ public SpecCaptcha(int width, int height)
+ {
+ this.width = width;
+ this.height = height;
+ }
+ public SpecCaptcha(int width, int height, int len){
+ this(width,height);
+ this.len = len;
+ }
+ public SpecCaptcha(int width, int height, int len, Font font){
+ this(width,height,len);
+ this.font = font;
+ }
+ /**
+ * 生成验证码
+ * @throws IOException IO异常
+ */
+ @Override
+ public void out(OutputStream out){
+ graphicsImage(alphas(), out);
+ }
+
+ /**
+ * 画随机码图
+ * @param strs 文本
+ * @param out 输出流
+ */
+ private boolean graphicsImage(char[] strs, OutputStream out){
+ boolean ok = false;
+ try
+ {
+ BufferedImage bi = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
+ Graphics2D g = (Graphics2D)bi.getGraphics();
+ AlphaComposite ac3;
+ Color color ;
+ int len = strs.length;
+ g.setColor(Color.WHITE);
+ g.fillRect(0,0,width,height);
+ // 随机画干扰的蛋蛋
+ for(int i=0;i<15;i++){
+ color = color(150, 250);
+ g.setColor(color);
+ g.drawOval(num(width), num(height), 5+num(10), 5+num(10));// 画蛋蛋,有蛋的生活才精彩
+ color = null;
+ }
+ g.setFont(font);
+ int h = height - ((height - font.getSize()) >>1),
+ w = width/len,
+ size = w-font.getSize()+1;
+ /* 画字符串 */
+ for(int i=0;i lessonList = lessonService.findByCourseId(id);
//相关课程
@@ -73,14 +78,14 @@ public ModelAndView detail(@PathVariable("id") Integer id,
map.put("selectiveType", selectiveType);
map.put("course", course);
map.put("courseDetail", courseDetail);
- map.put("teacher", teacher);
+ map.put("user", this.getUserVo(course.getCourseTeacherId()));
map.put("lessonCount", (lessonList != null && lessonList.size() > 0) ? lessonList.size() : 0);
map.put("courseNavigationStr", courseNavigationStr);
map.put("courseCategoryStr", courseCategoryStr);
map.put("courseRelevantList", courseRelevantList);
//当前用户是否已购买该课程
- User userInfo = this.getUserInfo();
+ UserVo userInfo = this.getUserInfo();
if (userInfo != null) {
if (StringUtils.isNoneEmpty(userInfo.getCourseIds())) {
String[] courseArr = userInfo.getCourseIds().split(",");
@@ -95,6 +100,7 @@ public ModelAndView detail(@PathVariable("id") Integer id,
return new ModelAndView("/course/detail", map);
}
+
/**
* 查询课程目录
* @param courseId
@@ -107,14 +113,12 @@ public ModelAndView lesson(@PathVariable("courseId") Integer courseId,
Map map) {
Course course = courseService.findOne(courseId);
- Teacher teacher = null;
String courseNavigationStr = "";
String courseCategoryStr = "";
if (course != null) {
courseNavigationStr = getCourseNavigationStr(course.getCourseNavigation());
courseCategoryStr = getCourseCategoryStr(course.getCourseCategory());
map.put("courseIsEnd", course.getCourseEndTime().getTime() - System.currentTimeMillis() < 0 ? 1 : 0);//1课程更新完毕
- teacher = teacherService.findOne(course.getCourseTeacherId());
}
CourseDetail courseDetail = courseDetailService.findOne(courseId);
List lessonList = lessonService.findByCourseId(courseId);
@@ -124,7 +128,7 @@ public ModelAndView lesson(@PathVariable("courseId") Integer courseId,
map.put("selectiveType", selectiveType);
map.put("course", course);
map.put("courseDetail", courseDetail);
- map.put("teacher", teacher);
+ map.put("user", this.getUserVo(course.getCourseTeacherId()));
map.put("lessonList", lessonList);
map.put("lessonCount", (lessonList != null && lessonList.size() > 0) ? lessonList.size() : 0);
map.put("courseNavigationStr", courseNavigationStr);
@@ -144,6 +148,25 @@ public ModelAndView lesson(@PathVariable("courseId") Integer courseId,
return new ModelAndView("/course/lesson", map);
}
+
+ /**
+ * 获取用户资料
+ * @param id 用户id(课程讲师id)
+ * @return
+ */
+ private UserVo getUserVo(Integer id) {
+ UserVo userVo = new UserVo();
+ User user = userService.findOne(id);
+ if (user != null) {
+ BeanUtils.copyProperties(user, userVo);
+ LoginInfo loginInfo = loginService.findByUsername(user.getUsername());
+ if (loginInfo != null) {
+ userVo.setTitleImgUrl(loginInfo.getTitleUrl());//头像
+ }
+ }
+ return userVo;
+ }
+
/**
* 查询相关课程
* @param id 课程主键
diff --git a/src/main/java/com/xuebusi/controller/ErrorController.java b/src/main/java/com/xuebusi/controller/ErrorController.java
new file mode 100644
index 0000000..dfe9b4c
--- /dev/null
+++ b/src/main/java/com/xuebusi/controller/ErrorController.java
@@ -0,0 +1,44 @@
+package com.xuebusi.controller;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.servlet.ModelAndView;
+
+/**
+ * 自定义错误页
+ * Created by SYJ on 2017/11/5.
+ */
+@Controller
+public class ErrorController {
+
+ protected final Logger log = LoggerFactory.getLogger(getClass());
+
+ /**
+ * 找不到资源
+ * @return
+ */
+ @GetMapping(value = "/404")
+ public ModelAndView notFound() {
+ return new ModelAndView("/404");
+ }
+
+ /**
+ * 请求语法格式有误
+ * @return
+ */
+ @GetMapping(value = "/400")
+ public ModelAndView formatError() {
+ return new ModelAndView("/400");
+ }
+
+ /**
+ * 服务器内部错误
+ * @return
+ */
+ @GetMapping(value = "/500")
+ public ModelAndView serverError() {
+ return new ModelAndView("/500");
+ }
+}
diff --git a/src/main/java/com/xuebusi/controller/IndexController.java b/src/main/java/com/xuebusi/controller/IndexController.java
index a8c169c..d947b93 100644
--- a/src/main/java/com/xuebusi/controller/IndexController.java
+++ b/src/main/java/com/xuebusi/controller/IndexController.java
@@ -3,6 +3,8 @@
import com.xuebusi.entity.Course;
import com.xuebusi.service.CourseService;
import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
@@ -26,6 +28,8 @@
@RequestMapping
public class IndexController extends BaseController {
+ protected final Logger log = LoggerFactory.getLogger(getClass());
+
@Autowired
private CourseService courseService;
diff --git a/src/main/java/com/xuebusi/controller/LoginController.java b/src/main/java/com/xuebusi/controller/LoginController.java
index 812cc60..5fdf513 100644
--- a/src/main/java/com/xuebusi/controller/LoginController.java
+++ b/src/main/java/com/xuebusi/controller/LoginController.java
@@ -1,20 +1,38 @@
package com.xuebusi.controller;
+import com.alibaba.fastjson.JSON;
+import com.belerweb.social.bean.Result;
+import com.belerweb.social.qq.connect.api.QQConnect;
+import com.belerweb.social.weibo.api.Weibo;
+import com.belerweb.social.weixin.api.Weixin;
+import com.belerweb.social.weixin.bean.AccessToken;
+import com.xuebusi.common.cache.InitDataCacheMap;
import com.xuebusi.common.utils.MD5Utils;
+import com.xuebusi.common.vcode.Captcha;
+import com.xuebusi.common.vcode.SpecCaptcha;
import com.xuebusi.entity.LoginInfo;
import com.xuebusi.entity.User;
import com.xuebusi.service.LoginService;
import com.xuebusi.service.UserService;
+import com.xuebusi.vo.UserVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.SecurityUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.view.RedirectView;
import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+import java.util.Date;
import java.util.Map;
/**
@@ -22,9 +40,32 @@
* Created by SYJ on 2017/10/14.
*/
@Controller
+@Api(value = "登陆接口", description = "登陆服务接口")
@RequestMapping
public class LoginController extends BaseController {
+ protected final Logger log = LoggerFactory.getLogger(getClass());
+
+ /**
+ * 微信开发者账号和密码
+ */
+ private static String weixinAppid = "";
+ private static String weixinSecret = "";
+
+ /**
+ * QQ开发者账号和密码
+ */
+ private static String qqAppid = "";
+ private static String qqSecret = "";
+ //private static String qqRedirectUri = "";
+
+ /**
+ * 微博开发者账号和密码
+ */
+ private static String weiboAppid = "";
+ private static String weiboSecret = "";
+ //private static String weiboRedirectUri = "";
+
@Autowired
private LoginService loginService;
@@ -37,6 +78,9 @@ public class LoginController extends BaseController {
* @return
*/
@GetMapping(value = "/register")
+ @ApiOperation(value = "跳转到注册页")
+ @ApiImplicitParams(value = {
+ @ApiImplicitParam(name = "map", value = "登陆所需参数", required = true, dataType = "Map") })
public ModelAndView register(HttpServletRequest request, Map map) {
if (this.getUserInfo() != null) {
return new ModelAndView(new RedirectView("/my/courses/learning"));
@@ -83,8 +127,8 @@ public ModelAndView reset(Map map) {
* @param map
* @return
*/
- @GetMapping(value = "/logout")
- public ModelAndView logout(HttpServletRequest request, Map map) {
+ @GetMapping(value = "/logout2")
+ public ModelAndView logout2(HttpServletRequest request, Map map) {
request.getSession().invalidate();
return new ModelAndView("/user/login", map);
}
@@ -95,6 +139,20 @@ public String check() {
return "";
}
+ /**
+ * 退出登录
+ * @return
+ */
+ @GetMapping(value="/logout")
+ public ModelAndView logout(){
+ try {
+ SecurityUtils.getSubject().logout();
+ } catch (Exception e) {
+ System.err.println(e.getMessage());
+ }
+ return new ModelAndView(new RedirectView("/login"));
+ }
+
/**
* 手机注册获取验证码
* @return
@@ -104,13 +162,40 @@ public String captcha() {
return "";
}
+ /**
+ * 获取验证码(PNG格式)
+ * @param response
+ */
+ @RequestMapping(value="/login/captcha/check",method=RequestMethod.GET)
+ public void getPngCode(HttpServletResponse response,HttpServletRequest request){
+ try {
+ response.setHeader("Pragma", "No-cache");
+ response.setHeader("Cache-Control", "no-cache");
+ response.setDateHeader("Expires", 0);
+ response.setContentType("image/gif");
+ /**
+ * gif格式动画验证码
+ * 宽,高,位数。
+ */
+ //Captcha captcha = new GifCaptcha(146,33,4);
+ Captcha captcha = new SpecCaptcha(146, 33, 4);
+ //输出
+ captcha.out(response.getOutputStream());
+ HttpSession session = request.getSession(true);
+ //存入Session
+ session.setAttribute("_code",captcha.text().toLowerCase());
+ } catch (Exception e) {
+ System.err.println("获取验证码异常:"+e.getMessage());
+ }
+ }
+
/**
* 用户登录
* @param username 用户名
* @param password 密码
* @return
*/
- @PostMapping(value = "/login")
+ @PostMapping(value = "/login2")
public ModelAndView login(@RequestParam("username")String username,
@RequestParam("password")String password,
HttpServletRequest request, Map map) {
@@ -122,15 +207,87 @@ public ModelAndView login(@RequestParam("username")String username,
if (loginInfo != null && loginInfo.getPassword().equals(MD5Utils.md5(password))) {
User user = userService.findByUsername(username);
+ UserVo userVo = new UserVo();
+ BeanUtils.copyProperties(user, userVo);
+ userVo.setTitleImgUrl(loginInfo.getTitleUrl());
//登录后将用户信息放入Session
- request.getSession().setAttribute("user", user);
- map.put("user", user);
+ request.getSession().setAttribute("user", userVo);
+ map.put("user", userVo);
return new ModelAndView(new RedirectView("/my/courses/learning"), map);
}
map.put("errMsg", "用户名或密码不正确");
return new ModelAndView("/user/login", map);
}
+ /**
+ * shiro登录
+ *
+ * @param username
+ * @param password
+ * @param request
+ * @param map
+ * @return
+ */
+ @PostMapping(value="/login")
+ public ModelAndView submitLogin(@RequestParam("username")String username,
+ @RequestParam("password")String password,
+ @RequestParam("vcode")String vcode,
+ HttpServletRequest request,
+ Map map) {
+ if (this.getUserInfo() != null){
+ return new ModelAndView(new RedirectView("/my/courses/learning"), map);
+ }
+
+ if(vcode==null||vcode==""){
+ map.put("errMsg", "验证码不能为空!");
+ return new ModelAndView("/user/login", map);
+ }
+
+// Session session = SecurityUtils.getSubject().getSession();
+ HttpSession session = request.getSession();
+ //转化成小写字母
+ vcode = vcode.toLowerCase();
+ String v = (String) session.getAttribute("_code");
+ //还可以读取一次后把验证码清空,这样每次登录都必须获取验证码
+ session.removeAttribute("_code");
+ if(!vcode.equals(v)){
+ map.put("errMsg", "验证码错误!");
+ return new ModelAndView("/user/login", map);
+ }
+
+ try {
+// UsernamePasswordToken token = new UsernamePasswordToken(username, password,false);
+// SecurityUtils.getSubject().login(token);
+ LoginInfo loginInfo = InitDataCacheMap.getLoginInfoCacheMap().get(username);
+ if (loginInfo == null) {
+ loginInfo = loginService.findByUsername(username);
+ }
+ if (loginInfo == null) {
+ map.put("errMsg", "用户不存在!");
+ return new ModelAndView("/user/login", map);
+ }
+
+ if (!loginInfo.getPassword().equalsIgnoreCase(MD5Utils.md5(password))) {
+ map.put("errMsg", "密码不正确!");
+ return new ModelAndView("/user/login", map);
+ }
+ log.info("身份认证成功,登录用户:" + username);
+
+ User user = userService.findByUsername(username);
+ UserVo userVo = new UserVo();
+ BeanUtils.copyProperties(user, userVo);
+ userVo.setTitleImgUrl(loginInfo.getTitleUrl());
+ //登录后将用户信息放入Session
+ request.getSession().setAttribute("user", userVo);
+ map.put("user", userVo);
+ return new ModelAndView(new RedirectView("/my/courses/learning"), map);
+
+ } catch (Exception e) {
+ map.put("errMsg", "帐号或密码不正确!");
+ return new ModelAndView("/user/login", map);
+ }
+ }
+
/**
* 用户注册
* @param username
@@ -157,11 +314,74 @@ public ModelAndView register(@RequestParam("username")String username,
//保存注册用户
LoginInfo loginInfo = new LoginInfo();
loginInfo.setUsername(username);
- loginInfo.setPassword(MD5Utils.md5(password));
+ loginInfo.setPassword(MD5Utils.md5Salt(username, password));
+ loginInfo.setCreateTime(new Date());
+ loginInfo.setUpdateTime(new Date());
loginService.save(loginInfo);
map.put("successMsg", "注册成功,请登录!");
return new ModelAndView("/user/login", map);
}
+ /**
+ * 微信授权登陆
+ * @param request
+ * @return
+ */
+ @RequestMapping(value = "/loginByWeChat")
+ @ResponseBody
+ public com.belerweb.social.weixin.bean.User loginByWeChat(HttpServletRequest request) {
+ String code = request.getParameter("code");
+ Weixin weixin = new Weixin(weixinAppid, weixinSecret);
+ //根据code获取access_token
+ Result accessTokenResult = weixin.getOAuth2().accessToken(code);
+ AccessToken accessToken = accessTokenResult.getResult();
+ //刷新 access_token
+ //Result newAccessTokenResult = weixin.getOAuth2().refreshAccessToken(accessToken.getRefreshToken());
+ //根据access_token获取用户信息
+ Result userResult = weixin.getUser().snsapiUserInfo(accessToken.getToken(), accessToken.getOpenId());
+ com.belerweb.social.weixin.bean.User user = userResult.getResult();
+ System.out.println(JSON.toJSONString(user));
+ return user;
+ }
+
+ /**
+ * QQ授权登陆
+ * @param request
+ * @return
+ */
+ @RequestMapping(value = "/loginByQQ")
+ @ResponseBody
+ public com.belerweb.social.qq.connect.bean.User loginByQQ(HttpServletRequest request) {
+ String code = request.getParameter("code");
+ QQConnect qqConnect = new QQConnect(qqAppid, qqSecret);
+ //根据code获取access_token
+ Result tokenResult = qqConnect.getOAuth2().accessToken(code, true);
+ //根据access_token获取openid
+ String openId = qqConnect.getOAuth2().openId(tokenResult.getResult().getToken(), true).getResult().getOpenId();
+ //根据access_token和openid获取用户信息
+ Result userResult = qqConnect.getUser().getUserInfo(tokenResult.getResult().getToken(), openId);
+ com.belerweb.social.qq.connect.bean.User user = userResult.getResult();
+ System.out.println(JSON.toJSONString(user));
+ return user;
+ }
+
+ /**
+ * 微博授权登陆
+ * @param request
+ * @return
+ */
+ @RequestMapping(value = "/loginByWeiBo")
+ @ResponseBody
+ public Result loginByWeiBo(HttpServletRequest request) {
+ String code = request.getParameter("code");
+ Weibo weibo = new Weibo(weiboAppid, weiboSecret);
+ //根据code获取access_token
+ Result tokenResult = weibo.getOAuth2().accessToken(code);
+ com.belerweb.social.weibo.bean.AccessToken at = tokenResult.getResult();
+ //根据access_token和uid获取用户信息
+ Result user = weibo.getUser().show(weiboAppid, at.getToken(), at.getUid(), null);
+ System.out.println(JSON.toJSONString(user));
+ return user;
+ }
}
diff --git a/src/main/java/com/xuebusi/controller/MessageController.java b/src/main/java/com/xuebusi/controller/MessageController.java
index 0276f65..2f64b0c 100644
--- a/src/main/java/com/xuebusi/controller/MessageController.java
+++ b/src/main/java/com/xuebusi/controller/MessageController.java
@@ -1,5 +1,7 @@
package com.xuebusi.controller;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
@@ -17,6 +19,8 @@
@RequestMapping(value = "/message")
public class MessageController {
+ protected final Logger log = LoggerFactory.getLogger(getClass());
+
/**
* 私信列表页面
* @param map
diff --git a/src/main/java/com/xuebusi/controller/MyController.java b/src/main/java/com/xuebusi/controller/MyController.java
index ebd17a1..93d3d67 100644
--- a/src/main/java/com/xuebusi/controller/MyController.java
+++ b/src/main/java/com/xuebusi/controller/MyController.java
@@ -5,7 +5,10 @@
import com.xuebusi.enums.OrderStatusEnum;
import com.xuebusi.service.CourseService;
import com.xuebusi.service.UserService;
+import com.xuebusi.vo.UserVo;
import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@@ -27,6 +30,8 @@
@RequestMapping(value = "/my")
public class MyController extends BaseController {
+ protected final Logger log = LoggerFactory.getLogger(getClass());
+
@Autowired
private UserService userService;
@@ -40,7 +45,7 @@ public class MyController extends BaseController {
*/
@RequestMapping(value = {"", "/courses/learning"})
public ModelAndView toMyCoursesLearning(HttpServletRequest request, Map map){
- User user = this.getUserInfo();
+ UserVo user = this.getUserInfo();
if (user != null) {
String courseIds = user.getCourseIds();
if (StringUtils.isEmpty(courseIds)) {
diff --git a/src/main/java/com/xuebusi/controller/OrderController.java b/src/main/java/com/xuebusi/controller/OrderController.java
index 6f030c8..1b15f0e 100644
--- a/src/main/java/com/xuebusi/controller/OrderController.java
+++ b/src/main/java/com/xuebusi/controller/OrderController.java
@@ -4,6 +4,8 @@
import com.xuebusi.service.CourseService;
import com.xuebusi.vo.OrderCreateVo;
import com.xuebusi.vo.PayCenterInfoVo;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
@@ -23,7 +25,9 @@
*/
@Controller
@RequestMapping(value = "/order")
-public class OrderController {
+public class OrderController extends BaseController {
+
+ protected final Logger log = LoggerFactory.getLogger(getClass());
private static final SimpleDateFormat dateFormart = new SimpleDateFormat("yyyyMMddHHssmm");
@@ -43,6 +47,12 @@ public ModelAndView orderShow(@RequestParam("targetId") Integer targetId,
Course course = courseService.findOne(targetId);
map.put("course", course);
+
+ // 价格判断,免费课程直接进入展示页
+ if (null!=course && course.getCoursePrice()<=0)
+ {
+ return new ModelAndView("/course/video/play/"+course.getId(), map);
+ }
return new ModelAndView("/order/order-show", map);
}
diff --git a/src/main/java/com/xuebusi/controller/PermissionController.java b/src/main/java/com/xuebusi/controller/PermissionController.java
new file mode 100644
index 0000000..4831f15
--- /dev/null
+++ b/src/main/java/com/xuebusi/controller/PermissionController.java
@@ -0,0 +1,76 @@
+package com.xuebusi.controller;
+
+import com.alibaba.fastjson.JSON;
+import com.xuebusi.entity.SysPermission;
+import com.xuebusi.service.SysPermissionService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 前端控制器
+ */
+
+@Controller
+@RequestMapping(value = "permission")
+public class PermissionController {
+
+ protected final Logger log = LoggerFactory.getLogger(getClass());
+
+ @Autowired
+ SysPermissionService sysPermissionService;
+
+ // 跳转到用户管理页面
+ @RequestMapping(value = "permissionPage")
+ public String userPage(String edit, Model modle) {
+ // edit判断是否编辑成功
+ modle.addAttribute("edit", edit);
+ return "permission/permission";
+ }
+
+ // 跳轉到編輯頁面edit
+ @RequestMapping(value = "editPage/{Id}")
+ public String editPage(@PathVariable("Id") String Id, Model model) {
+ if (Id.equals("add")) {
+ } else {
+ SysPermission permission = null/*sysPermissionService.selectById(Id)*/;
+ model.addAttribute("permission", permission);
+ }
+ return "permission/edit";
+ }
+
+ // 增加和修改
+ @RequestMapping(value = "edit")
+ public String edit(SysPermission permission, Model model) {
+ if (true/*sysPermissionService.insertOrUpdate(permission)*/) {
+ return "forward:permissionPage?edit=true";
+ } else {
+ return "forward:permissionPage?edit=false";
+ }
+ }
+
+ // 刪除
+ @RequestMapping(value = "delete")
+ @ResponseBody
+ public String delete(@RequestParam(value = "ids[]") String[] ids) {
+ Map resultMap = new HashMap();
+ try {
+ //sysPermissionService.deleteBatchIds(Arrays.asList(ids));
+ resultMap.put("flag", true);
+ resultMap.put("msg", "刪除成功!");
+ } catch (Exception e) {
+ resultMap.put("flag", false);
+ resultMap.put("msg", e.getMessage());
+ }
+ return JSON.toJSONString(resultMap);
+ }
+}
diff --git a/src/main/java/com/xuebusi/controller/PermissionInitController.java b/src/main/java/com/xuebusi/controller/PermissionInitController.java
new file mode 100644
index 0000000..fbd4031
--- /dev/null
+++ b/src/main/java/com/xuebusi/controller/PermissionInitController.java
@@ -0,0 +1,81 @@
+package com.xuebusi.controller;
+
+import com.alibaba.fastjson.JSON;
+import com.xuebusi.entity.SysPermissionInit;
+import com.xuebusi.service.SysPermissionInitService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ *
+ * 前端控制器
+ *
+ *
+ * @author z77z
+ * @since 2017-03-11
+ */
+
+@Controller
+@RequestMapping(value = "permissionInit")
+public class PermissionInitController {
+
+ protected final Logger log = LoggerFactory.getLogger(getClass());
+
+ @Autowired
+ SysPermissionInitService sysPermissionInitService;
+
+ // 跳转到用户管理页面
+ @RequestMapping(value = "permissionInitPage")
+ public String userPage(String edit, Model modle) {
+ // edit判断是否编辑成功
+ modle.addAttribute("edit", edit);
+ return "permissionInit/permissionInit";
+ }
+
+ // 跳轉到編輯頁面edit
+ @RequestMapping(value = "editPage/{Id}")
+ public String editPage(@PathVariable("Id") String Id, Model model) {
+ if (Id.equals("add")) {
+ } else {
+ SysPermissionInit permissionInit = null/*sysPermissionInitService.selectById(Id)*/;
+ model.addAttribute("permissionInit", permissionInit);
+ }
+ return "permissionInit/edit";
+ }
+
+ // 增加和修改
+ @RequestMapping(value = "edit")
+ public String edit(SysPermissionInit permissionInit, Model model) {
+ if (true/*sysPermissionInitService.insertOrUpdate(permissionInit)*/) {
+ return "forward:permissionInitPage?edit=true";
+ } else {
+ return "forward:permissionInitPage?edit=false";
+ }
+ }
+
+ // 刪除
+ @RequestMapping(value = "delete")
+ @ResponseBody
+ public String delete(@RequestParam(value = "ids[]") String[] ids) {
+ Map resultMap = new HashMap();
+ try {
+ //sysPermissionInitService.deleteBatchIds(Arrays.asList(ids));
+ resultMap.put("flag", true);
+ resultMap.put("msg", "刪除成功!");
+ } catch (Exception e) {
+ resultMap.put("flag", false);
+ resultMap.put("msg", e.getMessage());
+ }
+ return JSON.toJSONString(resultMap);
+ }
+}
diff --git a/src/main/java/com/xuebusi/controller/SettingController.java b/src/main/java/com/xuebusi/controller/SettingController.java
index 5266f21..c8ba9a8 100644
--- a/src/main/java/com/xuebusi/controller/SettingController.java
+++ b/src/main/java/com/xuebusi/controller/SettingController.java
@@ -1,13 +1,23 @@
package com.xuebusi.controller;
+import com.xuebusi.entity.LoginInfo;
import com.xuebusi.entity.User;
+import com.xuebusi.entity.WeiboUser;
import com.xuebusi.enums.BindTypeEnum;
+import com.xuebusi.service.LoginService;
import com.xuebusi.service.UserService;
+import com.xuebusi.service.WeiboLoginService;
import com.xuebusi.vo.UserFormVo;
+import com.xuebusi.vo.UserVo;
import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.FieldError;
+import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
@@ -16,6 +26,8 @@
import org.springframework.web.servlet.view.RedirectView;
import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+import java.util.List;
import java.util.Map;
/**
@@ -26,9 +38,17 @@
@RequestMapping(value = "/settings")
public class SettingController extends BaseController {
+ protected final Logger log = LoggerFactory.getLogger(getClass());
+
@Autowired
private UserService userService;
+ @Autowired
+ private LoginService loginService;
+
+ @Autowired
+ private WeiboLoginService weiboLoginService;
+
/**
* 基础信息页面
*
@@ -40,8 +60,13 @@ public ModelAndView settings(HttpServletRequest request, Map map
if (this.getUserInfo() != null) {
//显示最新基础信息
User user = userService.findByUsername(this.getUserInfo().getUsername());
- request.getSession().setAttribute("user", user);
- map.put("user", user);
+ UserVo userVo = new UserVo();
+ BeanUtils.copyProperties(user, userVo);
+ LoginInfo loginInfo = loginService.findByUsername(this.getUserInfo().getUsername());
+ userVo.setTitleImgUrl(loginInfo.getTitleUrl());
+
+ request.getSession().setAttribute("user", userVo);
+ map.put("user", userVo);
return new ModelAndView("/settings/settings", map);
}
return new ModelAndView(new RedirectView("redirect:/user/login"));
@@ -54,7 +79,14 @@ public ModelAndView settings(HttpServletRequest request, Map map
* @return
*/
@PostMapping
- public ModelAndView saveSettings(UserFormVo userFormVo, HttpServletRequest request, Map map) {
+ public ModelAndView saveSettings(@Validated UserFormVo userFormVo, BindingResult bindingResult, Map map) {
+
+ if (bindingResult.hasErrors()) {
+ List fieldErrors = bindingResult.getFieldErrors();
+ FieldError error = fieldErrors.get(0);
+ map.put("errMsg_" + error.getField(), error.getDefaultMessage());
+ return new ModelAndView("/settings/settings", map);
+ }
if (this.getUserInfo() != null && this.getUserInfo().getUsername().equals(userFormVo.getUsername())) {
User user = userService.findByUsername(userFormVo.getUsername());
if (user == null) {
@@ -180,8 +212,13 @@ public ModelAndView settingNewEmail(Map map) {
* @return
*/
@GetMapping(value = "/binds")
- public ModelAndView toBinds(Map map) {
-
+ public ModelAndView toBinds(Map map, HttpServletRequest request)
+ {
+ String username = this.getUserInfo().getUsername();
+ // weibo
+ WeiboUser weiboUser = weiboLoginService.findWeiboUserByUsername(username);
+ map.put("weibo", weiboUser);
+ map.put("errorMsg", request.getParameter("errorMsg"));
return new ModelAndView("/settings/binds", map);
}
@@ -196,10 +233,14 @@ public ModelAndView toBinds(Map map) {
* @param map
* @return
*/
- @PostMapping(value = "/binds/{bindType}")
- public ModelAndView bind(@PathVariable("bindType") String bindType, Map map) {
+ @GetMapping(value = "/bind/{bindType}")
+ public ModelAndView bind(@PathVariable("bindType") String bindType, Map map, HttpSession session)
+ {
+ session.setAttribute(bindType + "_login_current_url", "/settings/binds");
+
if (BindTypeEnum.weibo.name().equals(bindType)) {
//微博绑定
+ return new ModelAndView("/weibo/boot", map);
} else if (BindTypeEnum.qq.name().equals(bindType)) {
//QQ绑定
} else if (BindTypeEnum.weixin.name().equals(bindType)){
@@ -215,10 +256,11 @@ public ModelAndView bind(@PathVariable("bindType") String bindType, Map map) {
if (BindTypeEnum.weibo.name().equals(bindType)) {
//微博取消绑定
+ return new ModelAndView("/weibo/unbind", map);
} else if (BindTypeEnum.qq.name().equals(bindType)) {
//QQ取消绑定
} else if (BindTypeEnum.weixin.name().equals(bindType)){
diff --git a/src/main/java/com/xuebusi/controller/TestController.java b/src/main/java/com/xuebusi/controller/TestController.java
index 1bbd480..b54cb03 100644
--- a/src/main/java/com/xuebusi/controller/TestController.java
+++ b/src/main/java/com/xuebusi/controller/TestController.java
@@ -1,9 +1,18 @@
package com.xuebusi.controller;
import com.xuebusi.common.result.JsonResult;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import com.xuebusi.entity.LoginInfo;
+import com.xuebusi.entity.test.Employee;
+import com.xuebusi.service.LoginService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.FieldError;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import javax.validation.Valid;
import java.util.HashMap;
import java.util.Map;
@@ -15,6 +24,11 @@
@RequestMapping(value = "/test")
public class TestController {
+ protected final Logger log = LoggerFactory.getLogger(getClass());
+
+ @Autowired
+ private LoginService loginService;
+
/**
* 测试
* @return
@@ -25,4 +39,72 @@ public String getTime(){
map.put("1", System.currentTimeMillis());
return new JsonResult().JsonSuccess(map);
}
+
+ /**
+ * 测试@ModelAttribute的使用
+ * 被@ModelAttribute注解修饰的方法就相当于SpringMVC拦截器,
+ * 在调用该类中所有的方法之前都会先调用此方法。
+ * @param loginInfo
+ * @param map
+ */
+ @ModelAttribute
+ public void getLoginInfo(LoginInfo loginInfo, Map map) {
+ if (loginInfo.getId() != null && loginInfo.getId() > 0) {
+ map.put("loginInfo", loginService.findOne(loginInfo.getId()));
+ }
+ }
+
+ /**
+ * 【测试修改登录用户信息】
+ *
+ * 结合上面的@ModelAttribute注解标识的方法,
+ * 先判断LoginInfo的id不为空,说明是修改,
+ * 就根据id从数据库中查询出LoginInfo对象,
+ * 并放到请求域(map)中。
+ * 然后SpringMVC会将表单中的值赋值给查询出来的
+ * LoginInfo对象并将其传递给此方法的入参中的"loginInfo",
+ * 最后再进行修改操作,这样才能保证LoginInfo对象中的
+ * 密码属性不会被修改或者赋值为null。
+ * @param loginInfo
+ * @return
+ */
+ @RequestMapping(value = "/saveLoginInfo")
+ public String updateLoginInfo(@ModelAttribute("loginInfo") LoginInfo loginInfo) {
+ loginService.save(loginInfo);
+ return "success";
+ }
+
+ /**
+ * 测试日期数据类型转换
+ * 使用@DateTimeFormat注解对出生日期进行格式转换;
+ * 使用@NumberFormat注解对薪水进行数字格式转换;
+ * @param employee
+ * @return
+ */
+ @PostMapping(value = "/emp")
+ public String saveEmployee(@Valid Employee employee, BindingResult result) {
+ System.out.println(employee);
+ if (result.getErrorCount() > 0) {
+ for (FieldError error : result.getFieldErrors()) {
+ return error.getField() + "," + error.getDefaultMessage();
+ }
+ }
+ return "success";
+ }
+
+ /**
+ * 测试文件上传
+ * @param desc
+ * @param file
+ * @return
+ */
+ @PostMapping(value = "/upload")
+ public String fileUpload(@RequestParam("desc") String desc, @RequestParam MultipartFile file) {
+
+ System.out.println(desc);
+ System.out.println(file.getOriginalFilename());
+
+ return "success";
+ }
+
}
diff --git a/src/main/java/com/xuebusi/controller/UserController.java b/src/main/java/com/xuebusi/controller/UserController.java
new file mode 100644
index 0000000..8890a5b
--- /dev/null
+++ b/src/main/java/com/xuebusi/controller/UserController.java
@@ -0,0 +1,169 @@
+package com.xuebusi.controller;
+
+import com.xuebusi.entity.Course;
+import com.xuebusi.entity.Friend;
+import com.xuebusi.entity.LoginInfo;
+import com.xuebusi.entity.User;
+import com.xuebusi.service.CourseService;
+import com.xuebusi.service.FriendService;
+import com.xuebusi.service.LoginService;
+import com.xuebusi.service.UserService;
+import com.xuebusi.vo.UserVo;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.servlet.ModelAndView;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 用户信息
+ * Created by SYJ on 2017/10/30.
+ */
+@Controller
+@RequestMapping(value = "/user")
+public class UserController extends BaseController {
+
+ protected final Logger log = LoggerFactory.getLogger(getClass());
+
+ @Autowired
+ private UserService userService;
+
+ @Autowired
+ private LoginService loginService;
+
+ @Autowired
+ private CourseService courseService;
+
+ @Autowired
+ private FriendService friendService;
+
+
+ /**
+ * 个人介绍
+ * @param userId
+ * @param map
+ * @return
+ */
+ @RequestMapping(value = "/{userId}/about")
+ public ModelAndView about(@PathVariable("userId") Integer userId, Map map) {
+ //关注数据和粉丝数
+ map.put("user", this.getUserVo(userId));
+ return new ModelAndView("/user/about", map);
+ }
+
+ /**
+ * 在教课程
+ * @param id 用户id
+ * @param map
+ * @return
+ */
+ @RequestMapping(value = {"/{id}", "/{id}/teach"})
+ public ModelAndView toUser(@PathVariable("id") Integer id, Map map) {
+ //查询讲师所教课程
+ List courseList = courseService.findBycourseTeacherId(id);
+ //查询用户资料
+ UserVo userVo = this.getUserVo(id);
+ map.put("user", userVo);
+ map.put("courseList", courseList);
+ return new ModelAndView("/user/teach", map);
+ }
+
+ /**
+ * 关注
+ * @param toId
+ * @return
+ */
+ @PostMapping(value = "/{userId}/follow")
+ public ModelAndView follow(@PathVariable("userId") Integer toId, Map map) {
+
+ //TODO 待完善
+
+ Friend friend = new Friend();
+ friend.setFromId(this.getUserInfo().getId());
+ friend.setToId(toId);
+ Friend friendFromDb = friendService.save(friend);
+ map.put("countFrom", friendService.countByFromId(friendFromDb.getToId()));
+ map.put("countTo", friendService.countByToId(friendFromDb.getFromId()));
+ return new ModelAndView("", map);
+ }
+
+ /**
+ * 关注的人
+ * @param userId 用户id
+ * @param map
+ * @return
+ */
+ @RequestMapping(value = "/{userId}/following")
+ public ModelAndView following(@PathVariable("userId") Integer userId, Map map) {
+
+ List friendList = friendService.findByFromId(userId);
+ List userList = new ArrayList<>();
+ if (friendList != null && friendList.size() > 0) {
+ for (Friend friend : friendList) {
+ UserVo userVo = this.getUserVo(friend.getToId());
+ userList.add(userVo);
+ }
+ }
+
+ map.put("user", this.getUserVo(userId));
+ map.put("userList", userList);
+ return new ModelAndView("/user/following", map);
+ }
+
+ /**
+ * 粉丝
+ * @param userId 用户id
+ * @param map
+ * @return
+ */
+ @RequestMapping(value = "/{userId}/follower")
+ public ModelAndView follower(@PathVariable("userId") Integer userId, Map map) {
+
+ List friendList = friendService.findByToId(userId);
+ List userList = new ArrayList<>();
+ if (friendList != null && friendList.size() > 0) {
+ for (Friend friend : friendList) {
+ UserVo userVo = this.getUserVo(friend.getFromId());
+ userList.add(userVo);
+ }
+ }
+
+ map.put("user", this.getUserVo(userId));
+ map.put("userList", userList);
+ return new ModelAndView("/user/follower", map);
+ }
+
+ /**
+ * 获取用户资料
+ * @param id 用户id(课程讲师id)
+ * @return
+ */
+ private UserVo getUserVo(Integer id) {
+ UserVo userVo = new UserVo();
+ User user = userService.findOne(id);
+ if (user != null) {
+ BeanUtils.copyProperties(user, userVo);
+ LoginInfo loginInfo = loginService.findByUsername(user.getUsername());
+ if (loginInfo != null) {
+ userVo.setTitleImgUrl(loginInfo.getTitleUrl());//头像
+ }
+
+ // 获取粉丝数
+ int fansCount = friendService.findByToId(id).size();
+ // 获取关注数
+ int followCount = friendService.findByFromId(id).size();
+
+ userVo.setFansCount(fansCount);
+ userVo.setFollowCount(followCount);
+ }
+ return userVo;
+ }
+}
diff --git a/src/main/java/com/xuebusi/controller/VideoController.java b/src/main/java/com/xuebusi/controller/VideoController.java
new file mode 100644
index 0000000..49e4cb3
--- /dev/null
+++ b/src/main/java/com/xuebusi/controller/VideoController.java
@@ -0,0 +1,126 @@
+package com.xuebusi.controller;
+
+import com.xuebusi.entity.Course;
+import com.xuebusi.service.CourseService;
+import com.xuebusi.service.VideoService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.File;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author caiyuyu
+ * @date 2017/11/11
+ */
+@Controller
+@RequestMapping("/course/video")
+public class VideoController extends BaseController
+{
+ @Autowired
+ private VideoService videoService;
+
+ @Autowired
+ private CourseService courseService;
+
+ /**
+ * 上传本地视频,以 blob 格式保存在数据库
+ * @param courseId
+ * @param request
+ * @return */
+ @RequestMapping(value = "/{pk}", method = RequestMethod.POST)
+ public ResponseEntity upload(@PathVariable("pk") String courseId, HttpServletRequest request)
+ throws Exception
+ {
+ // TODO 绑定视频对象
+ File file = new File("");
+ if (StringUtils.isBlank(courseId) || null==file)
+ {
+ throw new Exception("传入参数有误");
+ }
+
+ Map returnMap = videoService.uploadVideo(file, courseId);
+
+ return new ResponseEntity(returnMap, HttpStatus.OK);
+
+ }
+
+
+ /**
+ * 加载数据库视频数据
+ * @param courseId
+ * @param response
+ * @throws Exception
+ */
+ @RequestMapping(value = "/{pk}/type-one", method = RequestMethod.GET)
+ public void loadVideoByTypeOne(@PathVariable("pk") String courseId, HttpServletResponse response)
+ throws Exception
+ {
+ if (StringUtils.isBlank(courseId))
+ {
+ throw new Exception("传入参数有误");
+ }
+ videoService.loadVideoByTypeOne(response, courseId);
+ }
+
+ /**
+ * 加载远程视频数据
+ * @param courseId
+ * @param response
+ * @throws Exception
+ */
+ @RequestMapping(value = "/{pk}/type-two", method = RequestMethod.GET)
+ public void loadVideoByTypeTwo(@PathVariable("pk") String courseId, HttpServletResponse response)
+ throws Exception
+ {
+ if (StringUtils.isBlank(courseId))
+ {
+ throw new Exception("传入参数有误");
+ }
+ videoService.loadVideoByTypeTwo(response, courseId);
+ }
+
+ /**
+ * 播放视频
+ * @param courseId
+ * @param request
+ * @return
+ */
+ @RequestMapping(value = "/play/{pk}", method = RequestMethod.GET)
+ public ModelAndView play(@PathVariable("pk") String courseId, HttpServletRequest request)
+ throws Exception
+ {
+// // type one
+// /**
+// * 添加测试数据 start
+// */
+// File file = new File("test-video.mp4");
+// Course tempCourse = courseService.findOne(Integer.parseInt(courseId));
+// videoService.uploadVideo(file, tempCourse.getId().toString());
+// /**
+// * 添加测试数据 end
+// */
+
+
+ Map returnMap = new HashMap<>(16);
+ Course course = courseService.findOne(Integer.parseInt(courseId));
+ if (null != course)
+ {
+ returnMap.put("course_title", course.getCourseTitle());
+ returnMap.put("course_id", course.getId());
+ return new ModelAndView("/course/play", returnMap);
+ }
+ return new ModelAndView("/404");
+ }
+
+}
diff --git a/src/main/java/com/xuebusi/controller/WeiboLoginController.java b/src/main/java/com/xuebusi/controller/WeiboLoginController.java
new file mode 100644
index 0000000..adfeb55
--- /dev/null
+++ b/src/main/java/com/xuebusi/controller/WeiboLoginController.java
@@ -0,0 +1,116 @@
+package com.xuebusi.controller;
+
+import com.xuebusi.entity.User;
+import com.xuebusi.entity.WeiboUser;
+import com.xuebusi.service.UserService;
+import com.xuebusi.service.WeiboLoginService;
+import com.xuebusi.vo.UserVo;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 微博登录
+ * @author caiyuyu
+ * @date 2017/10/31
+ */
+
+@Controller
+@RequestMapping(value = "/weibo")
+public class WeiboLoginController extends BaseController{
+
+ @Autowired
+ private WeiboLoginService weiboLoginService;
+
+ @Autowired
+ private UserService userService;
+
+ private final static Logger LOGGER = LoggerFactory.getLogger(WeiboLoginController.class);
+
+ /**
+ * 授权页
+ * @param request
+ * @return
+ */
+ @GetMapping(value = "/boot")
+ public ModelAndView authBoot(HttpServletRequest request)
+ {
+ return new ModelAndView("redirect:"+weiboLoginService.authBoot());
+ }
+
+ /**
+ * 授权回调页
+ * @param code
+ * @param request
+ * @return
+ */
+ @GetMapping(value = "/bind")
+ public ModelAndView getAccessToken(@RequestParam("code") String code, HttpServletRequest request, HttpSession session)
+ throws Exception
+ {
+ String redirect = "/my/courses/learning";
+ if (null != session.getAttribute("weibo_login_current_url"))
+ {
+ redirect = session.getAttribute("weibo_login_current_url").toString();
+ }
+ LOGGER.info("redirect url {}", redirect);
+
+ if (StringUtils.isBlank(code))
+ {
+ LOGGER.error("error");
+ return new ModelAndView("/");
+ }
+ WeiboUser weiboUser = weiboLoginService.weiboBind(code, this.getUserInfo());
+
+ Map returnMap = new HashMap<>(16);
+ if (weiboUser!=null)
+ {
+ // login
+ User user = userService.findByUsername(weiboUser.getUsername());
+ UserVo userVo = new UserVo();
+ BeanUtils.copyProperties(user, userVo);
+ request.getSession().setAttribute("user", userVo);
+ returnMap.put("user", user);
+
+ return new ModelAndView("redirect:"+redirect, returnMap);
+ }
+ else if(null!=this.getUserInfo())
+ {
+ returnMap.put("errorMsg", "微博帐号已经绑定用户!");
+
+ }
+ else
+ {
+ returnMap.put("errorMsg", "微博帐号绑定失败!");
+ }
+ return new ModelAndView("redirect:"+redirect, returnMap);
+ }
+
+ @GetMapping(value = "/unbind")
+ public ModelAndView cancleBind(HttpServletRequest request)
+ {
+ Map returnMap = new HashMap<>(16);
+ if (this.getUserInfo() != null)
+ {
+ weiboLoginService.cancelBind(this.getUserInfo().getUsername());
+ returnMap.put("successMsg", "微博帐号解绑成功!");
+ }
+ else
+ {
+ returnMap.put("errorMsg", "请登录后重试!");
+ }
+ return new ModelAndView("/settings/binds", returnMap);
+ }
+}
diff --git a/src/main/java/com/xuebusi/entity/Course.java b/src/main/java/com/xuebusi/entity/Course.java
index cee565f..972bfbc 100644
--- a/src/main/java/com/xuebusi/entity/Course.java
+++ b/src/main/java/com/xuebusi/entity/Course.java
@@ -1,8 +1,9 @@
package com.xuebusi.entity;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.Table;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.sql.Blob;
import java.util.Date;
/**
@@ -11,9 +12,10 @@
*/
@Entity
@Table(name = "tb_course")
-public class Course {
+public class Course implements Serializable {
@Id
+ @GeneratedValue
private Integer id;
private String courseTitle;
private String courseImgUrl;
@@ -22,6 +24,9 @@ public class Course {
private Double coursePrice;
private String courseLink;
private Date createTime;
+ @Lob
+ @Basic(fetch = FetchType.EAGER)
+ private Blob courseData;
/**
* systematic 系统课
* open 公开课
@@ -145,4 +150,12 @@ public Date getCourseEndTime() {
public void setCourseEndTime(Date courseEndTime) {
this.courseEndTime = courseEndTime;
}
+
+ public Blob getCourseData() {
+ return courseData;
+ }
+
+ public void setCourseData(Blob courseData) {
+ this.courseData = courseData;
+ }
}
diff --git a/src/main/java/com/xuebusi/entity/CourseDetail.java b/src/main/java/com/xuebusi/entity/CourseDetail.java
index f629d17..9a482d7 100644
--- a/src/main/java/com/xuebusi/entity/CourseDetail.java
+++ b/src/main/java/com/xuebusi/entity/CourseDetail.java
@@ -3,6 +3,7 @@
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
+import java.io.Serializable;
import java.util.Date;
/**
@@ -10,7 +11,7 @@
*/
@Entity
@Table(name = "tb_course_detail")
-public class CourseDetail {
+public class CourseDetail implements Serializable {
@Id
private int id;
diff --git a/src/main/java/com/xuebusi/entity/Friend.java b/src/main/java/com/xuebusi/entity/Friend.java
new file mode 100644
index 0000000..49cf592
--- /dev/null
+++ b/src/main/java/com/xuebusi/entity/Friend.java
@@ -0,0 +1,63 @@
+package com.xuebusi.entity;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 朋友(关注/粉丝)
+ * Created by SYJ on 2017/10/30.
+ */
+@Entity
+public class Friend implements Serializable {
+
+ @Id
+ @GeneratedValue
+ private int id;//主键
+ private int fromId;//关注人id
+ private int toId;//被关注人id
+ private int pair;//是否互加好友
+ private Date createTime;//创建时间
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public int getFromId() {
+ return fromId;
+ }
+
+ public void setFromId(int fromId) {
+ this.fromId = fromId;
+ }
+
+ public int getToId() {
+ return toId;
+ }
+
+ public void setToId(int toId) {
+ this.toId = toId;
+ }
+
+ public int getPair() {
+ return pair;
+ }
+
+ public void setPair(int pair) {
+ this.pair = pair;
+ }
+
+ public Date getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(Date createTime) {
+ this.createTime = createTime;
+ }
+}
diff --git a/src/main/java/com/xuebusi/entity/Lesson.java b/src/main/java/com/xuebusi/entity/Lesson.java
index e1d8c16..1c46758 100644
--- a/src/main/java/com/xuebusi/entity/Lesson.java
+++ b/src/main/java/com/xuebusi/entity/Lesson.java
@@ -3,6 +3,7 @@
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
+import java.io.Serializable;
import java.util.Date;
/**
@@ -11,7 +12,7 @@
*/
@Entity
@Table(name = "tb_lesson")
-public class Lesson {
+public class Lesson implements Serializable {
@Id
private Integer id;
diff --git a/src/main/java/com/xuebusi/entity/LoginInfo.java b/src/main/java/com/xuebusi/entity/LoginInfo.java
index bf55239..cce9420 100644
--- a/src/main/java/com/xuebusi/entity/LoginInfo.java
+++ b/src/main/java/com/xuebusi/entity/LoginInfo.java
@@ -4,6 +4,7 @@
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
+import java.io.Serializable;
import java.util.Date;
/**
@@ -12,13 +13,14 @@
*/
@Entity
@Table(name = "tb_login_info")
-public class LoginInfo {
+public class LoginInfo implements Serializable {
@Id
@GeneratedValue
private Integer id;
private String username;
private String password;
+ private String titleUrl;//头像
private Date createTime;
private Date updateTime;
@@ -46,6 +48,14 @@ public void setPassword(String password) {
this.password = password;
}
+ public String getTitleUrl() {
+ return titleUrl;
+ }
+
+ public void setTitleUrl(String titleUrl) {
+ this.titleUrl = titleUrl;
+ }
+
public Date getCreateTime() {
return createTime;
}
@@ -61,5 +71,4 @@ public Date getUpdateTime() {
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
-
}
diff --git a/src/main/java/com/xuebusi/entity/SysPermission.java b/src/main/java/com/xuebusi/entity/SysPermission.java
new file mode 100644
index 0000000..2d349de
--- /dev/null
+++ b/src/main/java/com/xuebusi/entity/SysPermission.java
@@ -0,0 +1,43 @@
+package com.xuebusi.entity;
+
+
+import java.io.Serializable;
+
+public class SysPermission implements Serializable {
+
+ private String id;
+ /**
+ * url地址
+ */
+ private String url;
+ /**
+ * url描述
+ */
+ private String name;
+
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getUrl() {
+ return url;
+ }
+
+ public void setUrl(String url) {
+ this.url = url;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+}
diff --git a/src/main/java/com/xuebusi/entity/SysPermissionInit.java b/src/main/java/com/xuebusi/entity/SysPermissionInit.java
new file mode 100644
index 0000000..7e613fa
--- /dev/null
+++ b/src/main/java/com/xuebusi/entity/SysPermissionInit.java
@@ -0,0 +1,44 @@
+package com.xuebusi.entity;
+
+import java.io.Serializable;
+
+public class SysPermissionInit implements Serializable {
+
+ private String id;
+ private String url;
+ private String permissionInit;
+ private Integer sort;
+
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getUrl() {
+ return url;
+ }
+
+ public void setUrl(String url) {
+ this.url = url;
+ }
+
+ public String getPermissionInit() {
+ return permissionInit;
+ }
+
+ public void setPermissionInit(String permissionInit) {
+ this.permissionInit = permissionInit;
+ }
+
+ public Integer getSort() {
+ return sort;
+ }
+
+ public void setSort(Integer sort) {
+ this.sort = sort;
+ }
+}
diff --git a/src/main/java/com/xuebusi/entity/SysRole.java b/src/main/java/com/xuebusi/entity/SysRole.java
new file mode 100644
index 0000000..04fb600
--- /dev/null
+++ b/src/main/java/com/xuebusi/entity/SysRole.java
@@ -0,0 +1,43 @@
+package com.xuebusi.entity;
+
+import java.io.Serializable;
+
+public class SysRole implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ private String id;
+ /**
+ * 角色名称
+ */
+ private String name;
+ /**
+ * 角色类型
+ */
+ private String type;
+
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+}
diff --git a/src/main/java/com/xuebusi/entity/SysRolePermission.java b/src/main/java/com/xuebusi/entity/SysRolePermission.java
new file mode 100644
index 0000000..be35f35
--- /dev/null
+++ b/src/main/java/com/xuebusi/entity/SysRolePermission.java
@@ -0,0 +1,43 @@
+package com.xuebusi.entity;
+
+import java.io.Serializable;
+
+public class SysRolePermission implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ private String id;
+ /**
+ * 角色ID
+ */
+ private String rid;
+ /**
+ * 权限ID
+ */
+ private String pid;
+
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getRid() {
+ return rid;
+ }
+
+ public void setRid(String rid) {
+ this.rid = rid;
+ }
+
+ public String getPid() {
+ return pid;
+ }
+
+ public void setPid(String pid) {
+ this.pid = pid;
+ }
+}
diff --git a/src/main/java/com/xuebusi/entity/SysUser.java b/src/main/java/com/xuebusi/entity/SysUser.java
new file mode 100644
index 0000000..5b0b6d9
--- /dev/null
+++ b/src/main/java/com/xuebusi/entity/SysUser.java
@@ -0,0 +1,142 @@
+package com.xuebusi.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+
+public class SysUser implements Serializable {
+
+ private String id;
+ /**
+ * 用户昵称
+ */
+ private String nickname;
+ /**
+ * 邮箱|登录帐号
+ */
+ private String email;
+ /**
+ * 密码
+ */
+ private String pswd;
+ /**
+ * 最后登录时间
+ */
+ private Date lastLoginTime;
+ /**
+ * 1:有效,0:禁止登录
+ */
+ private String status;
+ /**
+ * 最后修改人Id
+ */
+ private String lastUpdateNameId;
+ /**
+ * 创建人Id
+ */
+ private String createNameId;
+ /**
+ * 最后修改时间
+ */
+ private Date lastUpdateTime;
+ /**
+ * 创建时间
+ */
+ private Date createTime;
+
+ public SysUser(){}
+
+ public SysUser(SysUser user) {
+ super();
+ this.id = user.getId();
+ this.nickname = user.getNickname();
+ this.email = user.getEmail();
+ this.pswd = user.getPswd();
+ this.createTime = user.getCreateTime();
+ this.lastLoginTime = user.getLastLoginTime();
+ this.status = user.getStatus();
+ this.createNameId = user.getCreateNameId();
+ this.lastUpdateNameId = user.getLastUpdateNameId();
+ this.lastUpdateTime = user.getLastUpdateTime();
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getNickname() {
+ return nickname;
+ }
+
+ public void setNickname(String nickname) {
+ this.nickname = nickname;
+ }
+
+ public String getEmail() {
+ return email;
+ }
+
+ public void setEmail(String email) {
+ this.email = email;
+ }
+
+ public String getPswd() {
+ return pswd;
+ }
+
+ public void setPswd(String pswd) {
+ this.pswd = pswd;
+ }
+
+ public Date getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(Date createTime) {
+ this.createTime = createTime;
+ }
+
+ public Date getLastLoginTime() {
+ return lastLoginTime;
+ }
+
+ public void setLastLoginTime(Date lastLoginTime) {
+ this.lastLoginTime = lastLoginTime;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getLastUpdateNameId() {
+ return lastUpdateNameId;
+ }
+
+ public void setLastUpdateNameId(String lastUpdateNameId) {
+ this.lastUpdateNameId = lastUpdateNameId;
+ }
+
+ public String getCreateNameId() {
+ return createNameId;
+ }
+
+ public void setCreateNameId(String createNameId) {
+ this.createNameId = createNameId;
+ }
+
+ public Date getLastUpdateTime() {
+ return lastUpdateTime;
+ }
+
+ public void setLastUpdateTime(Date lastUpdateTime) {
+ this.lastUpdateTime = lastUpdateTime;
+ }
+
+}
diff --git a/src/main/java/com/xuebusi/entity/SysUserRole.java b/src/main/java/com/xuebusi/entity/SysUserRole.java
new file mode 100644
index 0000000..79fb5ec
--- /dev/null
+++ b/src/main/java/com/xuebusi/entity/SysUserRole.java
@@ -0,0 +1,44 @@
+package com.xuebusi.entity;
+
+import java.io.Serializable;
+
+public class SysUserRole implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ private String id;
+ /**
+ * 用户ID
+ */
+ private String uid;
+ /**
+ * 角色ID
+ */
+ private String rid;
+
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getUid() {
+ return uid;
+ }
+
+ public void setUid(String uid) {
+ this.uid = uid;
+ }
+
+ public String getRid() {
+ return rid;
+ }
+
+ public void setRid(String rid) {
+ this.rid = rid;
+ }
+
+}
diff --git a/src/main/java/com/xuebusi/entity/Teacher.java b/src/main/java/com/xuebusi/entity/Teacher.java
deleted file mode 100644
index 314f17b..0000000
--- a/src/main/java/com/xuebusi/entity/Teacher.java
+++ /dev/null
@@ -1,152 +0,0 @@
-package com.xuebusi.entity;
-
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.Table;
-
-/**
- * 讲师
- * Created by SYJ on 2017/10/8.
- */
-@Entity
-@Table(name = "tb_teacher")
-public class Teacher {
-
- @Id
- private Integer id;
- private String teacherName;
- private String teacherAbout;
- private String teacherLearn;
- private String teacherLearningClassroom;
- private String teacherFavorited;
- private String teacherGroup;
- private String teacherFollowing;
- private String teacherFollower;
- private String teacherRank;
- private String teacherSign;
- private String createTime;
- private String teacherPhotoUrl;
-
- public Integer getId() {
- return id;
- }
-
- public void setId(Integer id) {
- this.id = id;
- }
-
- public String getTeacherName() {
- return teacherName;
- }
-
- public void setTeacherName(String teacherName) {
- this.teacherName = teacherName;
- }
-
- public String getTeacherAbout() {
- return teacherAbout;
- }
-
- public void setTeacherAbout(String teacherAbout) {
- this.teacherAbout = teacherAbout;
- }
-
- public String getTeacherLearn() {
- return teacherLearn;
- }
-
- public void setTeacherLearn(String teacherLearn) {
- this.teacherLearn = teacherLearn;
- }
-
- public String getTeacherLearningClassroom() {
- return teacherLearningClassroom;
- }
-
- public void setTeacherLearningClassroom(String teacherLearningClassroom) {
- this.teacherLearningClassroom = teacherLearningClassroom;
- }
-
- public String getTeacherFavorited() {
- return teacherFavorited;
- }
-
- public void setTeacherFavorited(String teacherFavorited) {
- this.teacherFavorited = teacherFavorited;
- }
-
- public String getTeacherGroup() {
- return teacherGroup;
- }
-
- public void setTeacherGroup(String teacherGroup) {
- this.teacherGroup = teacherGroup;
- }
-
- public String getTeacherFollowing() {
- return teacherFollowing;
- }
-
- public void setTeacherFollowing(String teacherFollowing) {
- this.teacherFollowing = teacherFollowing;
- }
-
- public String getTeacherFollower() {
- return teacherFollower;
- }
-
- public void setTeacherFollower(String teacherFollower) {
- this.teacherFollower = teacherFollower;
- }
-
- public String getTeacherRank() {
- return teacherRank;
- }
-
- public void setTeacherRank(String teacherRank) {
- this.teacherRank = teacherRank;
- }
-
- public String getTeacherSign() {
- return teacherSign;
- }
-
- public void setTeacherSign(String teacherSign) {
- this.teacherSign = teacherSign;
- }
-
- public String getCreateTime() {
- return createTime;
- }
-
- public void setCreateTime(String createTime) {
- this.createTime = createTime;
- }
-
- public String getTeacherPhotoUrl() {
- return teacherPhotoUrl;
- }
-
- public void setTeacherPhotoUrl(String teacherPhotoUrl) {
- this.teacherPhotoUrl = teacherPhotoUrl;
- }
-
- @Override
- public String toString() {
- return "Teacher{" +
- "id=" + id +
- ", teacherName='" + teacherName + '\'' +
- ", teacherAbout='" + teacherAbout + '\'' +
- ", teacherLearn='" + teacherLearn + '\'' +
- ", teacherLearningClassroom='" + teacherLearningClassroom + '\'' +
- ", teacherFavorited='" + teacherFavorited + '\'' +
- ", teacherGroup='" + teacherGroup + '\'' +
- ", teacherFollowing='" + teacherFollowing + '\'' +
- ", teacherFollower='" + teacherFollower + '\'' +
- ", teacherRank='" + teacherRank + '\'' +
- ", teacherSign='" + teacherSign + '\'' +
- ", createTime='" + createTime + '\'' +
- ", teacherPhotoUrl='" + teacherPhotoUrl + '\'' +
- '}';
- }
-}
diff --git a/src/main/java/com/xuebusi/entity/User.java b/src/main/java/com/xuebusi/entity/User.java
index 5f45d45..eb4fea1 100644
--- a/src/main/java/com/xuebusi/entity/User.java
+++ b/src/main/java/com/xuebusi/entity/User.java
@@ -1,6 +1,7 @@
package com.xuebusi.entity;
import javax.persistence.*;
+import java.io.Serializable;
import java.util.Date;
/**
@@ -9,13 +10,14 @@
*/
@Entity
@Table(name="tb_user")
-public class User {
+public class User implements Serializable {
@Id
@GeneratedValue
private Integer id;
private String username;//用户名
private Date createTime;//创建时间
+ private Date updateTime;//修改时间
private String truename;//真实姓名
private String gender;//性别
private String idcard;//身份证号码
@@ -36,7 +38,8 @@ public class User {
private String city;//所在城市
private String courseIds;//所学课程id列表(逗号分隔)
- public Integer getId() {
+
+ public Integer getId() {
return id;
}
@@ -211,4 +214,12 @@ public String getCourseIds() {
public void setCourseIds(String courseIds) {
this.courseIds = courseIds;
}
+
+ public Date getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(Date updateTime) {
+ this.updateTime = updateTime;
+ }
}
diff --git a/src/main/java/com/xuebusi/entity/WeiboUser.java b/src/main/java/com/xuebusi/entity/WeiboUser.java
new file mode 100644
index 0000000..27ab765
--- /dev/null
+++ b/src/main/java/com/xuebusi/entity/WeiboUser.java
@@ -0,0 +1,83 @@
+package com.xuebusi.entity;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.util.Date;
+
+/**
+ * 微博用户授权信息
+ * @author caiyuyu
+ * @date 2017/11/2
+ */
+@Entity
+@Table(name="tb_weibo_user")
+public class WeiboUser {
+
+ @Id
+ @GeneratedValue
+ private Integer id;
+ private String weiboId;
+ private String username;
+ private String accessToken;
+ private Integer state;
+ private Date createTime;
+ private Date updateTime;
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public String getWeiboId() {
+ return weiboId;
+ }
+
+ public void setWeiboId(String weiboId) {
+ this.weiboId = weiboId;
+ }
+
+ public String getUsername() {
+ return username;
+ }
+
+ public void setUsername(String username) {
+ this.username = username;
+ }
+
+ public String getAccessToken() {
+ return accessToken;
+ }
+
+ public void setAccessToken(String accessToken) {
+ this.accessToken = accessToken;
+ }
+
+ public Integer getState() {
+ return state;
+ }
+
+ public void setState(Integer state) {
+ this.state = state;
+ }
+
+ public Date getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(Date createTime) {
+ this.createTime = createTime;
+ }
+
+ public Date getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(Date updateTime) {
+ this.updateTime = updateTime;
+ }
+}
diff --git a/src/main/java/com/xuebusi/entity/test/Employee.java b/src/main/java/com/xuebusi/entity/test/Employee.java
new file mode 100644
index 0000000..1223934
--- /dev/null
+++ b/src/main/java/com/xuebusi/entity/test/Employee.java
@@ -0,0 +1,92 @@
+package com.xuebusi.entity.test;
+
+import org.hibernate.validator.constraints.Email;
+import org.hibernate.validator.constraints.NotBlank;
+import org.hibernate.validator.constraints.NotEmpty;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.springframework.format.annotation.NumberFormat;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Past;
+import javax.validation.constraints.Size;
+import java.util.Date;
+
+/**
+ * 测试
+ * Created by SYJ on 2017/11/6.
+ */
+public class Employee {
+
+ @NotEmpty
+ private String name;
+
+ @NotNull
+ private Integer gender;
+
+ @Email
+ private String email;
+
+ /**
+ * 使用@DateTimeFormat对日期进行格式转换
+ */
+ @Past
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ private Date birth;
+
+ /**
+ * 使用@NumberFormat注解对数字进行格式转换
+ */
+ @NumberFormat(pattern = "#,###,###.#")
+ private Float salary;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public Integer getGender() {
+ return gender;
+ }
+
+ public void setGender(Integer gender) {
+ this.gender = gender;
+ }
+
+ public String getEmail() {
+ return email;
+ }
+
+ public void setEmail(String email) {
+ this.email = email;
+ }
+
+ public Date getBirth() {
+ return birth;
+ }
+
+ public void setBirth(Date birth) {
+ this.birth = birth;
+ }
+
+ public Float getSalary() {
+ return salary;
+ }
+
+ public void setSalary(Float salary) {
+ this.salary = salary;
+ }
+
+ @Override
+ public String toString() {
+ return "Employee{" +
+ "name='" + name + '\'' +
+ ", gender=" + gender +
+ ", email='" + email + '\'' +
+ ", birth=" + birth +
+ ", salary=" + salary +
+ '}';
+ }
+}
diff --git a/src/main/java/com/xuebusi/enums/UserTabEnum.java b/src/main/java/com/xuebusi/enums/UserTabEnum.java
new file mode 100644
index 0000000..7d72876
--- /dev/null
+++ b/src/main/java/com/xuebusi/enums/UserTabEnum.java
@@ -0,0 +1,43 @@
+package com.xuebusi.enums;
+
+/**
+ * 用户页面Tab类型
+ * Created by SYJ on 2017/10/30.
+ */
+public enum UserTabEnum {
+
+ about(1, "个人介绍"),
+
+ teach(2, "在教课程"),
+
+ teachingClassrooms(3, "在教班级"),
+
+ learn(4, "在学课程"),
+
+ learningClassrooms(5, "在学班级"),
+
+ favorited(6, "收藏课程"),
+
+ group(7, "加入小组"),
+
+ following(8, "关注"),
+
+ follower(9, "粉丝");
+
+ private int code;
+
+ private String value;
+
+ UserTabEnum(int code, String value) {
+ this.code = code;
+ this.value = value;
+ }
+
+ public int getCode() {
+ return code;
+ }
+
+ public String getValue() {
+ return value;
+ }
+}
diff --git a/src/main/java/com/xuebusi/example/SwaggerConfig.java b/src/main/java/com/xuebusi/example/SwaggerConfig.java
new file mode 100644
index 0000000..80604ba
--- /dev/null
+++ b/src/main/java/com/xuebusi/example/SwaggerConfig.java
@@ -0,0 +1,48 @@
+package com.xuebusi.example;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.service.ApiInfo;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+/**
+ *
+ * @classDesc: 功能描述:(SwaggerConfig)
+ * @author: 张全成
+ * @createTime: 2017年11月8日 下午7:20:49
+ * @version: v1.0
+ * 部分注释解释:
+ * @Api:修饰整个类,描述Controller的作用
+ * @ApiOperation:描述一个类的一个方法,或者说一个接口
+ * @ApiParam:单个参数描述
+ * @ApiModel:用对象来接收参数
+ * @ApiProperty:用对象接收参数时,描述对象的一个字段
+ */
+
+@Configuration
+@EnableSwagger2
+public class SwaggerConfig {
+ @Bean
+ public Docket createRestApi() {
+ return new Docket(DocumentationType.SWAGGER_2)
+ .apiInfo(apiInfo())
+ .select()
+ .apis(RequestHandlerSelectors.basePackage("com.xuebusi.controller"))
+ .paths(PathSelectors.any())
+ .build();
+ }
+ private ApiInfo apiInfo() {
+ return new ApiInfoBuilder()
+ .title("Xstrap利用swagger构建api文档")
+ .description("简单优雅的restfun风格,http://blog.csdn.net/forezp")
+ .termsOfServiceUrl("http://blog.csdn.net/forezp")
+ .version("1.0")
+ .build();
+ }
+}
diff --git a/src/main/java/com/xuebusi/mapper/BaseMapper.java b/src/main/java/com/xuebusi/mapper/BaseMapper.java
new file mode 100644
index 0000000..be20364
--- /dev/null
+++ b/src/main/java/com/xuebusi/mapper/BaseMapper.java
@@ -0,0 +1,12 @@
+package com.xuebusi.mapper;
+
+import tk.mybatis.mapper.common.Mapper;
+import tk.mybatis.mapper.common.MySqlMapper;
+
+/**
+ * @author caiyuyu
+ * @date 2017/11/2
+ */
+public interface BaseMapper extends Mapper, MySqlMapper {
+ // Can not be scanned
+}
diff --git a/src/main/java/com/xuebusi/mapper/WeiboUserMapper.java b/src/main/java/com/xuebusi/mapper/WeiboUserMapper.java
new file mode 100644
index 0000000..3f93156
--- /dev/null
+++ b/src/main/java/com/xuebusi/mapper/WeiboUserMapper.java
@@ -0,0 +1,44 @@
+package com.xuebusi.mapper;
+
+import com.xuebusi.entity.WeiboUser;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * @author caiyuyu
+ * @date 2017/11/2
+ */
+@Mapper
+@Component
+public interface WeiboUserMapper extends BaseMapper
+{
+
+ String FIND_WEIBO_INFO_SQL =
+ "" +
+ " " ;
+
+ /**
+ * 通过 token 查询微博授权用户信息
+ * @param token
+ * @return
+ */
+ @Select(FIND_WEIBO_INFO_SQL)
+ Map findWeiboInfoByToken(@Param("token") String token);
+}
diff --git a/src/main/java/com/xuebusi/repository/CourseRepository.java b/src/main/java/com/xuebusi/repository/CourseRepository.java
index bf30677..bb20295 100644
--- a/src/main/java/com/xuebusi/repository/CourseRepository.java
+++ b/src/main/java/com/xuebusi/repository/CourseRepository.java
@@ -42,4 +42,10 @@ public interface CourseRepository extends JpaRepository, JpaSpe
*/
Page findByCourseNavigationAndCourseCategory(String courseNavigation, String courseCategory, Pageable pageable);
+ /**
+ * 根据讲师id查询所教的课程
+ * @param courseTeacherId
+ * @return
+ */
+ List findBycourseTeacherId(Integer courseTeacherId);
}
diff --git a/src/main/java/com/xuebusi/repository/FriendRepository.java b/src/main/java/com/xuebusi/repository/FriendRepository.java
new file mode 100644
index 0000000..df01df3
--- /dev/null
+++ b/src/main/java/com/xuebusi/repository/FriendRepository.java
@@ -0,0 +1,48 @@
+package com.xuebusi.repository;
+
+import com.xuebusi.entity.Friend;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+import java.util.List;
+
+/**
+ * 关注/粉丝
+ * Created by SYJ on 2017/10/30.
+ */
+public interface FriendRepository extends JpaRepository {
+
+ /**
+ * 查询粉丝列表
+ * @param fromId
+ * @return
+ */
+ List findByFromId(Integer fromId);
+
+ /**
+ * 查询关注人列表
+ * @param toId
+ * @return
+ */
+ List findByToId(Integer toId);
+
+ /**
+ * 统计关注数
+ * @param fromId
+ * @return
+ */
+ int countByFromId(Integer fromId);
+
+ /**
+ * 统计粉丝数
+ * @param toId
+ * @return
+ */
+ int countByToId(Integer toId);
+
+ /**
+ * 修改
+ * @param friend
+ * @return
+ */
+ Friend save(Friend friend);
+}
diff --git a/src/main/java/com/xuebusi/repository/TeacherRepository.java b/src/main/java/com/xuebusi/repository/TeacherRepository.java
deleted file mode 100644
index 339f2d0..0000000
--- a/src/main/java/com/xuebusi/repository/TeacherRepository.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.xuebusi.repository;
-
-import com.xuebusi.entity.Teacher;
-import org.springframework.data.jpa.repository.JpaRepository;
-
-/**
- * 讲师
- * Created by SYJ on 2017/10/8.
- */
-public interface TeacherRepository extends JpaRepository{
-
-}
diff --git a/src/main/java/com/xuebusi/repository/WeiboUserRepository.java b/src/main/java/com/xuebusi/repository/WeiboUserRepository.java
new file mode 100644
index 0000000..4321957
--- /dev/null
+++ b/src/main/java/com/xuebusi/repository/WeiboUserRepository.java
@@ -0,0 +1,29 @@
+package com.xuebusi.repository;
+
+import com.xuebusi.entity.WeiboUser;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+/**
+ * 微博授权信息
+ * @author caiyuyu
+ * @date 2017/11/2
+ */
+
+public interface WeiboUserRepository extends JpaRepository {
+
+ /**
+ * 根据用户名查询是否存在微博绑定
+ * @param username
+ * @param state
+ * @return
+ */
+ WeiboUser findByUsernameAndState(String username, Integer state);
+
+ /**
+ * 根据微博id查询
+ * @param id
+ * @param state
+ * @return
+ */
+ WeiboUser findByWeiboIdAndState(String id, Integer state);
+}
diff --git a/src/main/java/com/xuebusi/service/CourseService.java b/src/main/java/com/xuebusi/service/CourseService.java
index 2fea001..1653188 100644
--- a/src/main/java/com/xuebusi/service/CourseService.java
+++ b/src/main/java/com/xuebusi/service/CourseService.java
@@ -66,4 +66,11 @@ public interface CourseService {
Page findList(String navigation, String category, Pageable pageable);
+ /**
+ * 根据讲师id查询所教的课程
+ * @param courseTeacherId
+ * @return
+ */
+ List findBycourseTeacherId(Integer courseTeacherId);
+
}
diff --git a/src/main/java/com/xuebusi/service/FriendService.java b/src/main/java/com/xuebusi/service/FriendService.java
new file mode 100644
index 0000000..25c5641
--- /dev/null
+++ b/src/main/java/com/xuebusi/service/FriendService.java
@@ -0,0 +1,69 @@
+package com.xuebusi.service;
+
+import com.xuebusi.entity.Friend;
+import com.xuebusi.repository.FriendRepository;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 关注/粉丝
+ * Created by SYJ on 2017/10/30.
+ */
+@Service
+public class FriendService {
+
+ protected final Logger log = LoggerFactory.getLogger(getClass());
+
+ @Autowired
+ private FriendRepository friendRepository;
+
+ /**
+ * 查询粉丝列表
+ * @param fromId
+ * @return
+ */
+ public List findByFromId(Integer fromId) {
+ return friendRepository.findByFromId(fromId);
+ }
+
+ /**
+ * 查询关注人列表
+ * @param toId
+ * @return
+ */
+ public List findByToId(Integer toId) {
+ return friendRepository.findByToId(toId);
+ }
+
+ /**
+ * 关注数
+ * @param fromId
+ * @return
+ */
+ public int countByFromId(Integer fromId) {
+ return friendRepository.countByFromId(fromId);
+ }
+
+ /**
+ * 粉丝数
+ * @param toId
+ * @return
+ */
+ public int countByToId(Integer toId) {
+ return friendRepository.countByToId(toId);
+ }
+
+ /**
+ * 修改
+ * @param friend
+ * @return
+ */
+ public Friend save(Friend friend) {
+ return friendRepository.save(friend);
+ }
+
+}
diff --git a/src/main/java/com/xuebusi/service/SysPermissionInitService.java b/src/main/java/com/xuebusi/service/SysPermissionInitService.java
new file mode 100644
index 0000000..cd731ae
--- /dev/null
+++ b/src/main/java/com/xuebusi/service/SysPermissionInitService.java
@@ -0,0 +1,14 @@
+package com.xuebusi.service;
+
+import com.xuebusi.entity.SysPermissionInit;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class SysPermissionInitService {
+
+ public List selectAll() {
+ return null;
+ }
+}
diff --git a/src/main/java/com/xuebusi/service/SysPermissionService.java b/src/main/java/com/xuebusi/service/SysPermissionService.java
new file mode 100644
index 0000000..fa45667
--- /dev/null
+++ b/src/main/java/com/xuebusi/service/SysPermissionService.java
@@ -0,0 +1,8 @@
+package com.xuebusi.service;
+
+import org.springframework.stereotype.Service;
+
+@Service
+public class SysPermissionService {
+
+}
diff --git a/src/main/java/com/xuebusi/service/SysRolePermissionService.java b/src/main/java/com/xuebusi/service/SysRolePermissionService.java
new file mode 100644
index 0000000..e67c391
--- /dev/null
+++ b/src/main/java/com/xuebusi/service/SysRolePermissionService.java
@@ -0,0 +1,8 @@
+package com.xuebusi.service;
+
+import org.springframework.stereotype.Service;
+
+@Service
+public class SysRolePermissionService {
+
+}
diff --git a/src/main/java/com/xuebusi/service/SysRoleService.java b/src/main/java/com/xuebusi/service/SysRoleService.java
new file mode 100644
index 0000000..c40c5d2
--- /dev/null
+++ b/src/main/java/com/xuebusi/service/SysRoleService.java
@@ -0,0 +1,8 @@
+package com.xuebusi.service;
+
+import org.springframework.stereotype.Service;
+
+@Service
+public class SysRoleService {
+
+}
diff --git a/src/main/java/com/xuebusi/service/SysUserRoleService.java b/src/main/java/com/xuebusi/service/SysUserRoleService.java
new file mode 100644
index 0000000..0c248bc
--- /dev/null
+++ b/src/main/java/com/xuebusi/service/SysUserRoleService.java
@@ -0,0 +1,8 @@
+package com.xuebusi.service;
+
+import org.springframework.stereotype.Service;
+
+@Service
+public class SysUserRoleService {
+
+}
diff --git a/src/main/java/com/xuebusi/service/SysUserService.java b/src/main/java/com/xuebusi/service/SysUserService.java
new file mode 100644
index 0000000..f44247a
--- /dev/null
+++ b/src/main/java/com/xuebusi/service/SysUserService.java
@@ -0,0 +1,18 @@
+//package com.xuebusi.service;
+//
+//import org.apache.shiro.session.mgt.SessionManager;
+//import org.crazycake.shiro.RedisSessionDAO;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.stereotype.Service;
+//
+//
+//@Service
+//public class SysUserService {
+//
+// @Autowired
+// RedisSessionDAO redisSessionDAO;
+//
+// @Autowired
+// SessionManager sessionManager;
+//
+//}
diff --git a/src/main/java/com/xuebusi/service/TeacherService.java b/src/main/java/com/xuebusi/service/TeacherService.java
deleted file mode 100644
index 29ad1a9..0000000
--- a/src/main/java/com/xuebusi/service/TeacherService.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.xuebusi.service;
-
-import com.xuebusi.entity.Teacher;
-
-import java.util.List;
-
-/**
- * 讲师
- * Created by SYJ on 2017/10/8.
- */
-public interface TeacherService {
-
- /**
- * 根据id查询讲师信息
- * @param id
- * @return
- */
- Teacher findOne(Integer id);
-
- /**
- * 查询所有讲师信息
- * @return
- */
- List findAll();
-
-}
diff --git a/src/main/java/com/xuebusi/service/VideoService.java b/src/main/java/com/xuebusi/service/VideoService.java
new file mode 100644
index 0000000..3304942
--- /dev/null
+++ b/src/main/java/com/xuebusi/service/VideoService.java
@@ -0,0 +1,113 @@
+package com.xuebusi.service;
+
+import com.xuebusi.entity.Course;
+import com.xuebusi.repository.CourseRepository;
+import org.hibernate.Hibernate;
+import org.hibernate.Session;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.persistence.EntityManager;
+import javax.servlet.http.HttpServletResponse;
+import java.io.*;
+import java.sql.Blob;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author caiyuyu
+ * @date 2017/11/11
+ */
+@Service
+public class VideoService {
+
+ private final static Logger LOGGER = LoggerFactory.getLogger(VideoService.class);
+
+ @Autowired
+ private EntityManager entityManager;
+
+ @Autowired
+ private CourseRepository courseRepository;
+
+
+ /**
+ * 上传视频
+ * @param file
+ * @param courseId
+ * @return
+ */
+ public Map uploadVideo(File file, String courseId) throws Exception
+ {
+ Map returnMap = new HashMap<>(16);
+
+ // 实例化本地视频对象 TODO
+ // 将本地视频拷贝到远程云服务器, 返回url TODO
+
+ // 可能需要设置数据库 max_allowed_packet 参数
+ BufferedInputStream fstream = new BufferedInputStream(new FileInputStream(file));
+
+ Session session = entityManager.unwrap(Session.class);
+ Blob blob = Hibernate.getLobCreator(session).createBlob(fstream, file.length());
+
+ Course course = courseRepository.findOne(Integer.parseInt(courseId));
+ if (null != course)
+ {
+ course.setCourseData(blob);
+ courseRepository.saveAndFlush(course);
+ }
+
+ return returnMap;
+ }
+
+ /**
+ * 加载数据库视频数据
+ * @param response
+ * @param courseId
+ * @throws Exception
+ */
+ public void loadVideoByTypeOne(HttpServletResponse response, String courseId) throws Exception
+ {
+ Course course = courseRepository.findOne(Integer.parseInt(courseId));
+ if (null != course)
+ {
+ OutputStream o = response.getOutputStream();
+ InputStream i = course.getCourseData().getBinaryStream();
+ byte[] buffer;
+ buffer = new byte[i.available()];
+ LOGGER.info("buffer 大小{}", buffer.length);
+ i.read(buffer);
+ o.write(buffer);
+ o.flush();
+ o.close();
+ }
+ }
+
+ /**
+ * 加载远程视频
+ * @param response
+ * @param courseId
+ */
+ public void loadVideoByTypeTwo(HttpServletResponse response, String courseId) throws Exception
+ {
+ Course course = courseRepository.findOne(Integer.parseInt(courseId));
+ if (null != course)
+ {
+ // 获取课程视频远程 url 地址
+// String url = course.getCourseLink();
+ // test
+ String url = "test-video.mp4";
+ File file = new File(url);
+ OutputStream o = response.getOutputStream();
+ InputStream i = new FileInputStream(file);
+ byte[] buffer;
+ buffer = new byte[i.available()];
+ LOGGER.info("buffer 大小{}", buffer.length);
+ i.read(buffer);
+ o.write(buffer);
+ o.flush();
+ o.close();
+ }
+ }
+}
diff --git a/src/main/java/com/xuebusi/service/WeiboLoginService.java b/src/main/java/com/xuebusi/service/WeiboLoginService.java
new file mode 100644
index 0000000..45f2375
--- /dev/null
+++ b/src/main/java/com/xuebusi/service/WeiboLoginService.java
@@ -0,0 +1,160 @@
+package com.xuebusi.service;
+
+import com.alibaba.fastjson.JSONObject;
+import com.github.kevinsawicki.http.HttpRequest;
+import com.xuebusi.controller.WeiboLoginController;
+import com.xuebusi.entity.LoginInfo;
+import com.xuebusi.entity.User;
+import com.xuebusi.entity.WeiboUser;
+import com.xuebusi.mapper.WeiboUserMapper;
+import com.xuebusi.repository.LoginRepository;
+import com.xuebusi.repository.WeiboUserRepository;
+import com.xuebusi.vo.UserVo;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author caiyuyu
+ * @date 2017/11/2
+ */
+@Service
+public class WeiboLoginService {
+
+ private final static Logger LOGGER = LoggerFactory.getLogger(WeiboLoginController.class);
+
+ @Value("${weibo-auth-url}")
+ private String weiboAuthUrl;
+
+ @Value("${weibo-token-url}")
+ private String weiboTokenUrl;
+
+ @Value("${weibo-client-id}")
+ private String weiboClientId;
+
+ @Value("${weibo-client-sercret}")
+ private String weiboClientSercret;
+
+ @Value("${weibo-redirect-url}")
+ private String weiboRedirectUrl;
+
+ @Value("${weibo-user-url}")
+ private String weiboUserUrl;
+
+ @Autowired
+ private UserService userService;
+
+ @Autowired
+ private WeiboUserRepository weiboUserRepository;
+
+ @Autowired
+ private WeiboUserMapper weiboUserMapper;
+
+ @Autowired
+ private LoginRepository loginRepository;
+
+
+ public String authBoot()
+ {
+ StringBuffer url = new StringBuffer(weiboAuthUrl);
+ url.append("?client_id="+weiboClientId);
+ url.append("&redirect_uri="+weiboRedirectUrl);
+ url.append("&response_type=code");
+ return url.toString();
+ }
+ public WeiboUser weiboBind(String code, UserVo userVo)
+ {
+ // access token
+ Map paramMap = new HashMap<>(16);
+ paramMap.put("code", code);
+ paramMap.put("grant_type", "authorization_code");
+ paramMap.put("client_id", weiboClientId);
+ paramMap.put("client_secret", weiboClientSercret);
+ paramMap.put("redirect_uri", weiboRedirectUrl);
+ String result = HttpRequest.post(weiboTokenUrl).form(paramMap).body();
+ JSONObject resultObj = JSONObject.parseObject(result);
+ String token = resultObj.getString("access_token");
+ String uid = resultObj.getString("uid");
+ LOGGER.info("uid: {} token: {}", uid, token);
+
+ Map weiboinfoMap = weiboUserMapper.findWeiboInfoByToken(token);
+ WeiboUser weiboUser = weiboUserRepository.findByWeiboIdAndState(uid, 1);
+
+ // if not exist
+ if (weiboinfoMap==null){
+ Map userMap = new HashMap<>(16);
+ userMap.put("access_token", token);
+ userMap.put("uid", uid);
+ String userResult = HttpRequest.get(weiboUserUrl, userMap, false).body();
+ JSONObject userObj = JSONObject.parseObject(userResult);
+
+ String userId = userObj.getString("idstr");
+ String nickName = userObj.getString("name");
+
+ User tempUser = userService.findByUsername(userId);
+
+ if (userVo != null)
+ {
+ userId = userVo.getUsername();
+ }
+ else if(weiboUser==null && tempUser==null)
+ {
+ // insert to user table
+ User user = new User();
+ user.setUsername(userId);
+ user.setTruename(nickName);
+ user.setCreateTime(new Date());
+ user.setUpdateTime(new Date());
+ user.setWeibo("http://weibo.com/"+userObj.getString("idstr")+"/info");
+ userService.save(user);
+
+ // insert to login_ifo table
+ LoginInfo loginInfo = new LoginInfo();
+ loginInfo.setUsername(userId);
+ loginInfo.setCreateTime(new Date());
+ loginInfo.setUpdateTime(new Date());
+ loginInfo.setPassword("");
+ loginRepository.save(loginInfo);
+ }
+
+ // insert or update
+ if (null == weiboUser)
+ {
+ weiboUser = new WeiboUser();
+ weiboUser.setUsername(userId);
+ weiboUser.setWeiboId(userObj.getString("idstr"));
+ weiboUser.setCreateTime(new Date());
+ }
+ weiboUser.setAccessToken(token);
+ weiboUser.setUpdateTime(new Date());
+ weiboUser.setState(1);
+ weiboUserRepository.save(weiboUser);
+ return weiboUser;
+ }
+ if (weiboinfoMap!=null && weiboUser!=null && userVo==null)
+ {
+ return weiboUser;
+ }
+
+ return null;
+ }
+
+ public WeiboUser findWeiboUserByUsername(String username)
+ {
+ return weiboUserRepository.findByUsernameAndState(username, 1);
+ }
+
+ public void cancelBind(String username)
+ {
+ WeiboUser weiboUser = weiboUserRepository.findByUsernameAndState(username, 1);
+ weiboUser.setState(0);
+ weiboUserRepository.save(weiboUser);
+ }
+
+}
diff --git a/src/main/java/com/xuebusi/service/impl/CourseDetailServiceImpl.java b/src/main/java/com/xuebusi/service/impl/CourseDetailServiceImpl.java
index 40bb075..f48861d 100644
--- a/src/main/java/com/xuebusi/service/impl/CourseDetailServiceImpl.java
+++ b/src/main/java/com/xuebusi/service/impl/CourseDetailServiceImpl.java
@@ -4,6 +4,8 @@
import com.xuebusi.entity.CourseDetail;
import com.xuebusi.repository.CourseDetailRepository;
import com.xuebusi.service.CourseDetailService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -16,6 +18,8 @@
@Service
public class CourseDetailServiceImpl implements CourseDetailService {
+ protected final Logger log = LoggerFactory.getLogger(getClass());
+
@Autowired
private CourseDetailRepository courseDetailRepository;
diff --git a/src/main/java/com/xuebusi/service/impl/CourseServiceImpl.java b/src/main/java/com/xuebusi/service/impl/CourseServiceImpl.java
index 97a352d..29a47d6 100644
--- a/src/main/java/com/xuebusi/service/impl/CourseServiceImpl.java
+++ b/src/main/java/com/xuebusi/service/impl/CourseServiceImpl.java
@@ -6,6 +6,8 @@
import com.xuebusi.enums.CourseNavigationEnum;
import com.xuebusi.repository.CourseRepository;
import com.xuebusi.service.CourseService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
@@ -22,6 +24,8 @@
@Service
public class CourseServiceImpl implements CourseService {
+ protected final Logger log = LoggerFactory.getLogger(getClass());
+
@Autowired
private CourseRepository courseRepository;
@@ -154,4 +158,14 @@ public Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder cb)
return courseRepository.findAll(specification, pageable);
}
+ /**
+ * 根据讲师id查询所教课程
+ * @param courseTeacherId
+ * @return
+ */
+ @Override
+ public List findBycourseTeacherId(Integer courseTeacherId) {
+ return courseRepository.findBycourseTeacherId(courseTeacherId);
+ }
+
}
diff --git a/src/main/java/com/xuebusi/service/impl/LessonServiceImpl.java b/src/main/java/com/xuebusi/service/impl/LessonServiceImpl.java
index 020d08f..db0286b 100644
--- a/src/main/java/com/xuebusi/service/impl/LessonServiceImpl.java
+++ b/src/main/java/com/xuebusi/service/impl/LessonServiceImpl.java
@@ -4,6 +4,8 @@
import com.xuebusi.entity.Lesson;
import com.xuebusi.repository.LessonRepository;
import com.xuebusi.service.LessonService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -17,6 +19,8 @@
@Service
public class LessonServiceImpl implements LessonService {
+ protected final Logger log = LoggerFactory.getLogger(getClass());
+
@Autowired
private LessonRepository lessonRepository;
diff --git a/src/main/java/com/xuebusi/service/impl/LoginServiceImpl.java b/src/main/java/com/xuebusi/service/impl/LoginServiceImpl.java
index e5b2a98..cf56824 100644
--- a/src/main/java/com/xuebusi/service/impl/LoginServiceImpl.java
+++ b/src/main/java/com/xuebusi/service/impl/LoginServiceImpl.java
@@ -6,12 +6,14 @@
import com.xuebusi.repository.LoginRepository;
import com.xuebusi.repository.UserRepository;
import com.xuebusi.service.LoginService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection;
+import java.util.Date;
import java.util.List;
/**
@@ -22,6 +24,8 @@
@Transactional(readOnly = true)
public class LoginServiceImpl implements LoginService {
+ protected final Logger log = LoggerFactory.getLogger(getClass());
+
@Autowired
private LoginRepository loginRepository;
@@ -68,6 +72,7 @@ public LoginInfo findByUsername(String username) {
* @param loginInfo
* @return
*/
+ @Override
@Transactional(readOnly = false)
public LoginInfo save(LoginInfo loginInfo) {
LoginInfo newLoginInfo = loginRepository.save(loginInfo);
@@ -76,6 +81,8 @@ public LoginInfo save(LoginInfo loginInfo) {
//同时生成一条用户基本信息
User user = new User();
user.setUsername(loginInfo.getUsername());
+ user.setCreateTime(new Date());
+ user.setUpdateTime(new Date());
User newUser = userRepository.save(user);
InitDataCacheMap.getUserCacheMap().put(newUser.getUsername(), newUser);
return newLoginInfo;
diff --git a/src/main/java/com/xuebusi/service/impl/TeacherServiceImpl.java b/src/main/java/com/xuebusi/service/impl/TeacherServiceImpl.java
deleted file mode 100644
index de2ff2d..0000000
--- a/src/main/java/com/xuebusi/service/impl/TeacherServiceImpl.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package com.xuebusi.service.impl;
-
-import com.xuebusi.common.cache.InitDataCacheMap;
-import com.xuebusi.entity.Teacher;
-import com.xuebusi.repository.TeacherRepository;
-import com.xuebusi.service.TeacherService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.util.Collection;
-import java.util.List;
-
-/**
- * 讲师
- * Created by SYJ on 2017/10/8.
- */
-@Service
-public class TeacherServiceImpl implements TeacherService {
-
- @Autowired
- private TeacherRepository teacherRepository;
-
- /**
- * 查询讲师信息
- * @param id
- * @return
- */
- @Override
- public Teacher findOne(Integer id) {
- Teacher teacher = InitDataCacheMap.getTeacherCacheMap().get(String.valueOf(id));
- if (teacher != null) {
- return teacher;
- }
- return teacherRepository.findOne(id);
- }
-
- /**
- * 查询所有讲师信息
- * @return
- */
- @Override
- public List findAll() {
- Collection teachers = InitDataCacheMap.getTeacherCacheMap().values();
- if (teachers != null && teachers.size() > 0) {
- return (List) teachers;
- }
- return teacherRepository.findAll();
- }
-
-}
diff --git a/src/main/java/com/xuebusi/service/impl/UserServiceImpl.java b/src/main/java/com/xuebusi/service/impl/UserServiceImpl.java
index 0f86574..d08721b 100644
--- a/src/main/java/com/xuebusi/service/impl/UserServiceImpl.java
+++ b/src/main/java/com/xuebusi/service/impl/UserServiceImpl.java
@@ -4,6 +4,8 @@
import com.xuebusi.entity.User;
import com.xuebusi.repository.UserRepository;
import com.xuebusi.service.UserService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -17,6 +19,8 @@
@Service
public class UserServiceImpl implements UserService {
+ protected final Logger log = LoggerFactory.getLogger(getClass());
+
@Autowired
private UserRepository userRepository;
@@ -47,10 +51,10 @@ public List findAll() {
*/
@Override
public User findByUsername(String username) {
- User user = InitDataCacheMap.getUserCacheMap().get(username);
+ /*User user = InitDataCacheMap.getUserCacheMap().get(username);
if (user != null) {
return user;
- }
+ }*/
return userRepository.findByUsername(username);
}
diff --git a/src/main/java/com/xuebusi/vo/UserFormVo.java b/src/main/java/com/xuebusi/vo/UserFormVo.java
index 7863129..319cbbf 100644
--- a/src/main/java/com/xuebusi/vo/UserFormVo.java
+++ b/src/main/java/com/xuebusi/vo/UserFormVo.java
@@ -1,16 +1,23 @@
package com.xuebusi.vo;
+import org.hibernate.validator.constraints.Length;
+import org.hibernate.validator.constraints.NotBlank;
+
+import java.io.Serializable;
+
/**
* 用户设置信息
* Created by SYJ on 2017/10/22.
*/
-public class UserFormVo {
+public class UserFormVo implements Serializable {
private Integer id;
private String username;//用户名
private String truename;//真实姓名
private String gender;//性别
+ @NotBlank(message = "身份证号码不能为空")
private String idcard;//身份证号码
+ @Length(min = 11, max = 11, message = "手机号码长度必须为11位数字")
private String mobile;//手机号码
private String company;//公司
private String job;//职业
diff --git a/src/main/java/com/xuebusi/vo/UserVo.java b/src/main/java/com/xuebusi/vo/UserVo.java
new file mode 100644
index 0000000..a62f7d8
--- /dev/null
+++ b/src/main/java/com/xuebusi/vo/UserVo.java
@@ -0,0 +1,239 @@
+package com.xuebusi.vo;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 查看用户资料
+ * Created by SYJ on 2017/10/30.
+ */
+public class UserVo implements Serializable {
+
+ private Integer id;
+ private String username;//用户名
+ private Date createTime;//创建时间
+ private String truename;//真实姓名
+ private String gender;//性别
+ private String idcard;//身份证号码
+ private String mobile;//手机号码
+ private String company;//公司
+ private String job;//职业
+ private String title;//头衔
+ private String signature;//个人签名
+ private String about;//自我介绍
+ private String site;//个人空间
+ private String weibo;//微博
+ private String isWeiboPublic;//微博是否公开
+ private String weixin;//微信
+ private String isWeixinPublic;//微信是否公开
+ private String qq;//QQ
+ private String isQqPublic;//QQ是否公开
+ private String position;//职位
+ private String city;//所在城市
+ private String courseIds;//所学课程id列表(逗号分隔)
+ private String titleImgUrl;//头像
+ private int fansCount;
+ private int followCount;
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public String getUsername() {
+ return username;
+ }
+
+ public void setUsername(String username) {
+ this.username = username;
+ }
+
+ public Date getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(Date createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getTruename() {
+ return truename;
+ }
+
+ public void setTruename(String truename) {
+ this.truename = truename;
+ }
+
+ public String getGender() {
+ return gender;
+ }
+
+ public void setGender(String gender) {
+ this.gender = gender;
+ }
+
+ public String getIdcard() {
+ return idcard;
+ }
+
+ public void setIdcard(String idcard) {
+ this.idcard = idcard;
+ }
+
+ public String getMobile() {
+ return mobile;
+ }
+
+ public void setMobile(String mobile) {
+ this.mobile = mobile;
+ }
+
+ public String getCompany() {
+ return company;
+ }
+
+ public void setCompany(String company) {
+ this.company = company;
+ }
+
+ public String getJob() {
+ return job;
+ }
+
+ public void setJob(String job) {
+ this.job = job;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+ public String getSignature() {
+ return signature;
+ }
+
+ public void setSignature(String signature) {
+ this.signature = signature;
+ }
+
+ public String getAbout() {
+ return about;
+ }
+
+ public void setAbout(String about) {
+ this.about = about;
+ }
+
+ public String getSite() {
+ return site;
+ }
+
+ public void setSite(String site) {
+ this.site = site;
+ }
+
+ public String getWeibo() {
+ return weibo;
+ }
+
+ public void setWeibo(String weibo) {
+ this.weibo = weibo;
+ }
+
+ public String getIsWeiboPublic() {
+ return isWeiboPublic;
+ }
+
+ public void setIsWeiboPublic(String isWeiboPublic) {
+ this.isWeiboPublic = isWeiboPublic;
+ }
+
+ public String getWeixin() {
+ return weixin;
+ }
+
+ public void setWeixin(String weixin) {
+ this.weixin = weixin;
+ }
+
+ public String getIsWeixinPublic() {
+ return isWeixinPublic;
+ }
+
+ public void setIsWeixinPublic(String isWeixinPublic) {
+ this.isWeixinPublic = isWeixinPublic;
+ }
+
+ public String getQq() {
+ return qq;
+ }
+
+ public void setQq(String qq) {
+ this.qq = qq;
+ }
+
+ public String getIsQqPublic() {
+ return isQqPublic;
+ }
+
+ public void setIsQqPublic(String isQqPublic) {
+ this.isQqPublic = isQqPublic;
+ }
+
+ public String getPosition() {
+ return position;
+ }
+
+ public void setPosition(String position) {
+ this.position = position;
+ }
+
+ public String getCity() {
+ return city;
+ }
+
+ public void setCity(String city) {
+ this.city = city;
+ }
+
+ public String getCourseIds() {
+ return courseIds;
+ }
+
+ public void setCourseIds(String courseIds) {
+ this.courseIds = courseIds;
+ }
+
+ public String getTitleImgUrl() {
+ return titleImgUrl;
+ }
+
+ public void setTitleImgUrl(String titleImgUrl) {
+ this.titleImgUrl = titleImgUrl;
+ }
+
+ public int getFansCount() {
+ return fansCount;
+ }
+
+ public void setFansCount(int fansCount) {
+ this.fansCount = fansCount;
+ }
+
+ public int getFollowCount() {
+ return followCount;
+ }
+
+ public void setFollowCount(int followCount) {
+ this.followCount = followCount;
+ }
+
+
+}
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 1353a87..fd762c8 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -1,10 +1,48 @@
-server.port=80
+server.port=8088
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
+spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.url=jdbc:mysql://localhost:3306/xstrap?characterEncoding=utf-8&useSSL=false
-
spring.jpa.show-sql=true
spring.jackson.default-property-inclusion=non_null
-spring.redis.host=localhost
-spring.redis.port=6379
\ No newline at end of file
+
+# druid
+spring.datasource.druid.initial-size=5
+spring.datasource.druid.min-idle=5
+spring.datasource.druid.max-active=20
+spring.datasource.druid.max-wait=60000
+spring.datasource.druid.time-between-eviction-runs-millis=60000
+spring.datasource.druid.min-evictable-idle-time-millis=300000
+spring.datasource.druid.validation-query=SELECT 'x'
+spring.datasource.druid.test-while-idle=true
+spring.datasource.druid.test-on-borrow=false
+spring.datasource.druid.test-on-return=false
+spring.datasource.druid.pool-prepared-statements=true
+spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20
+spring.datasource.druid.filters=stat,wall,slf4j
+spring.datasource.druid.connection-properties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
+spring.datasource.druid.use-global-data-source-stat=true
+spring.datasource.druid.web-stat-filter.enabled=true
+spring.datasource.druid.web-stat-filter.url-pattern=/*
+spring.datasource.druid.web-stat-filter.exclusions=*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*
+spring.datasource.druid.stat-view-servlet.enabled=true
+spring.datasource.druid.stat-view-servlet.url-pattern=/druid/*
+spring.datasource.druid.stat-view-servlet.reset-enable=false
+
+#redis
+spring.redis.host= localhost
+spring.redis.port= 6379
+spring.redis.pool.max-idle= 8
+spring.redis.pool.min-idle= 0
+spring.redis.pool.max-active= 8
+spring.redis.pool.max-wait= -1
+spring.redis.timeout= 0
+
+# weibo auth
+weibo-auth-url=https://api.weibo.com/oauth2/authorize
+weibo-token-url=https://api.weibo.com/oauth2/access_token
+weibo-redirect-url=http://127.0.0.1/weibo/bind
+weibo-user-url=https://api.weibo.com/2/users/show.json
+weibo-client-id=1489084907
+weibo-client-sercret=5ee37f73c6e923379ac9a8fa2d7f8a6f
diff --git a/src/main/resources/init-db.sql b/src/main/resources/init-db.sql
index 3bcc944..ebfff86 100644
--- a/src/main/resources/init-db.sql
+++ b/src/main/resources/init-db.sql
@@ -1,19 +1,150 @@
/*
-Navicat MySQL Data Transfer
+ Navicat Premium Data Transfer
-Source Server : windows-mysql
-Source Server Version : 50634
-Source Host : localhost:3306
-Source Database : xstrap
+ Source Server : xstrap
+ Source Server Type : MySQL
+ Source Server Version : 50720
+ Source Host : localhost:3306
+ Source Schema : xstrap
-Target Server Type : MYSQL
-Target Server Version : 50634
-File Encoding : 65001
+ Target Server Type : MySQL
+ Target Server Version : 50720
+ File Encoding : 65001
-Date: 2017-10-26 19:41:54
+ Date: 11/11/2017 17:19:23
*/
-SET FOREIGN_KEY_CHECKS=0;
+SET NAMES utf8mb4;
+SET FOREIGN_KEY_CHECKS = 0;
+
+-- ----------------------------
+-- Table structure for friend
+-- ----------------------------
+DROP TABLE IF EXISTS `friend`;
+CREATE TABLE `friend` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '关注ID',
+ `from_id` int(10) unsigned NOT NULL COMMENT '关注人ID',
+ `to_id` int(10) unsigned NOT NULL COMMENT '被关注人ID',
+ `pair` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '是否为互加好友',
+ `create_time` datetime DEFAULT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Records of friend
+-- ----------------------------
+BEGIN;
+INSERT INTO `friend` VALUES (1, 1, 2, 0, '2017-10-30 19:09:48');
+INSERT INTO `friend` VALUES (2, 2, 1, 0, '2017-10-30 20:16:12');
+INSERT INTO `friend` VALUES (5, 1, 3, 0, '2017-10-30 20:51:45');
+INSERT INTO `friend` VALUES (6, 1, 4, 0, '2017-09-26 20:51:48');
+INSERT INTO `friend` VALUES (7, 1, 5, 0, '2017-10-19 20:51:51');
+INSERT INTO `friend` VALUES (8, 2, 3, 0, '2017-10-10 20:51:55');
+INSERT INTO `friend` VALUES (9, 2, 4, 0, '2017-10-19 20:51:58');
+INSERT INTO `friend` VALUES (10, 2, 5, 0, '2017-10-09 20:52:01');
+INSERT INTO `friend` VALUES (11, 2, 6, 0, '2017-10-01 20:52:04');
+INSERT INTO `friend` VALUES (12, 2, 7, 0, '2017-10-11 20:52:07');
+INSERT INTO `friend` VALUES (13, 3, 5, 0, '2017-10-27 20:52:10');
+INSERT INTO `friend` VALUES (14, 3, 6, 0, '2017-10-05 20:52:14');
+INSERT INTO `friend` VALUES (15, 3, 7, 0, '2017-10-24 20:52:18');
+INSERT INTO `friend` VALUES (16, 4, 1, 0, '2017-10-16 20:52:22');
+INSERT INTO `friend` VALUES (17, 4, 3, 0, '2017-10-21 20:52:26');
+INSERT INTO `friend` VALUES (18, 5, 9, 0, '2017-10-09 20:52:29');
+INSERT INTO `friend` VALUES (19, 5, 10, 0, '2017-10-04 20:52:32');
+INSERT INTO `friend` VALUES (20, 5, 11, 0, '2017-10-16 20:52:35');
+INSERT INTO `friend` VALUES (21, 6, 2, 0, '2017-11-02 20:52:37');
+INSERT INTO `friend` VALUES (22, 6, 7, 0, '2017-10-09 20:52:40');
+INSERT INTO `friend` VALUES (23, 6, 9, 0, '2017-10-20 20:52:44');
+INSERT INTO `friend` VALUES (24, 7, 2, 0, '2017-10-24 20:52:47');
+INSERT INTO `friend` VALUES (25, 7, 9, 0, '2017-10-31 20:52:53');
+INSERT INTO `friend` VALUES (26, 8, 4, 0, '2017-10-10 20:52:56');
+INSERT INTO `friend` VALUES (27, 8, 6, 0, '2017-10-12 20:52:58');
+INSERT INTO `friend` VALUES (28, 8, 1, 0, '2017-10-12 20:53:03');
+INSERT INTO `friend` VALUES (29, 8, 5, 0, '2017-10-10 20:53:06');
+INSERT INTO `friend` VALUES (30, 9, 4, 0, '2017-10-18 20:53:09');
+INSERT INTO `friend` VALUES (31, 9, 8, 0, '2017-11-03 20:53:11');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for message
+-- ----------------------------
+DROP TABLE IF EXISTS `message`;
+CREATE TABLE `message` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '私信Id',
+ `type` enum('text','image','video','audio') NOT NULL DEFAULT 'text' COMMENT '私信类型',
+ `fromId` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '发信人Id',
+ `toId` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '收信人Id',
+ `content` text NOT NULL COMMENT '私信内容',
+ `createdTime` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '私信发送时间',
+ `isDelete` int(1) NOT NULL DEFAULT '0' COMMENT '是否已删除',
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Records of message
+-- ----------------------------
+BEGIN;
+INSERT INTO `message` VALUES (1, 'text', 1, 13, '欢迎加入网络课堂,祝您学习愉快。如有问题,随时与我联系。', 1458089980, 0);
+INSERT INTO `message` VALUES (2, 'text', 1, 13, '欢迎加入网络课堂,祝您学习愉快。如有问题,随时与我联系。', 1458089989, 0);
+INSERT INTO `message` VALUES (3, 'text', 1, 14, '欢迎加入网络课堂,祝您学习愉快。如有问题,随时与我联系。', 1486741123, 0);
+INSERT INTO `message` VALUES (4, 'text', 1, 15, '欢迎加入网络课堂,祝您学习愉快。如有问题,随时与我联系。', 1491372241, 0);
+INSERT INTO `message` VALUES (5, 'text', 1, 16, '欢迎加入网络课堂,祝您学习愉快。如有问题,随时与我联系。', 1493894502, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for message_conversation
+-- ----------------------------
+DROP TABLE IF EXISTS `message_conversation`;
+CREATE TABLE `message_conversation` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '会话Id',
+ `fromId` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '发信人Id',
+ `toId` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '收信人Id',
+ `messageNum` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '此对话的信息条数',
+ `latestMessageUserId` int(10) unsigned DEFAULT NULL COMMENT '最后发信人ID',
+ `latestMessageTime` int(10) unsigned NOT NULL COMMENT '最后发信时间',
+ `latestMessageContent` text NOT NULL COMMENT '最后发信内容',
+ `latestMessageType` enum('text','image','video','audio') NOT NULL DEFAULT 'text' COMMENT '最后一条私信类型',
+ `unreadNum` int(10) unsigned NOT NULL COMMENT '未读数量',
+ `createdTime` int(10) unsigned NOT NULL COMMENT '会话创建时间',
+ PRIMARY KEY (`id`),
+ KEY `toId_fromId` (`toId`,`fromId`) USING BTREE,
+ KEY `toId_latestMessageTime` (`toId`,`latestMessageTime`) USING BTREE
+) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Records of message_conversation
+-- ----------------------------
+BEGIN;
+INSERT INTO `message_conversation` VALUES (2, 1, 13, 2, 1, 1458089989, '欢迎加入网络课堂,祝您学习愉快。如有问题,随时与我联系。', 'text', 2, 1458089980);
+INSERT INTO `message_conversation` VALUES (3, 13, 1, 1, 1, 1458089989, '欢迎加入网络课堂,祝您学习愉快。如有问题,随时与我联系。', 'text', 0, 1458089989);
+INSERT INTO `message_conversation` VALUES (5, 1, 14, 1, 1, 1486741123, '欢迎加入网络课堂,祝您学习愉快。如有问题,随时与我联系。', 'text', 1, 1486741123);
+INSERT INTO `message_conversation` VALUES (7, 1, 15, 1, 1, 1491372241, '欢迎加入网络课堂,祝您学习愉快。如有问题,随时与我联系。', 'text', 1, 1491372241);
+INSERT INTO `message_conversation` VALUES (9, 1, 16, 1, 1, 1493894502, '欢迎加入网络课堂,祝您学习愉快。如有问题,随时与我联系。', 'text', 1, 1493894502);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for message_relation
+-- ----------------------------
+DROP TABLE IF EXISTS `message_relation`;
+CREATE TABLE `message_relation` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '消息关联ID',
+ `conversationId` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '关联的会话ID',
+ `messageId` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '关联的消息ID',
+ `isRead` enum('0','1') NOT NULL DEFAULT '0' COMMENT '是否已读',
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Records of message_relation
+-- ----------------------------
+BEGIN;
+INSERT INTO `message_relation` VALUES (2, 2, 1, '0');
+INSERT INTO `message_relation` VALUES (3, 3, 2, '0');
+INSERT INTO `message_relation` VALUES (4, 2, 2, '0');
+INSERT INTO `message_relation` VALUES (6, 5, 3, '0');
+INSERT INTO `message_relation` VALUES (8, 7, 4, '0');
+INSERT INTO `message_relation` VALUES (10, 9, 5, '0');
+COMMIT;
-- ----------------------------
-- Table structure for tb_course
@@ -29,6 +160,7 @@ CREATE TABLE `tb_course` (
`create_time` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
`course_category` varchar(255) DEFAULT NULL COMMENT '所属分类',
`course_navigation` varchar(255) DEFAULT NULL COMMENT '所属导航菜单',
+ `course_data` longblob COMMENT '课程数据',
`course_teacher_id` int(11) NOT NULL COMMENT '讲师id',
`course_start_time` timestamp NULL DEFAULT NULL COMMENT '开课时间',
`course_end_time` timestamp NULL DEFAULT NULL COMMENT '课程结束时间',
@@ -39,406 +171,408 @@ CREATE TABLE `tb_course` (
-- ----------------------------
-- Records of tb_course
-- ----------------------------
-INSERT INTO `tb_course` VALUES ('1', '《Python数据分析升级版》第三期', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '300', '899.00', '/course/1/lesson', '2017-10-26 11:37:38', 'systematic', 'bigdata', '1', '2017-02-01 21:52:35', '2020-07-30 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('2', '《深度学习实训:人脸识别项目》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', '3', '3499.00', '/course/2/lesson', '2017-10-26 11:37:38', 'open', 'bigdata', '1', '2017-06-06 21:53:00', '2017-06-13 21:53:07', 'chinadu');
-INSERT INTO `tb_course` VALUES ('3', '零基础Python入门', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', '4214', '299.00', '/course/3/lesson', '2017-10-26 11:37:38', 'open', 'bigdata', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('4', '算法与数据结构中的面试与刷题', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', '608', '0.00', '/course/4/lesson', '2017-10-26 11:37:38', 'open', 'bigdata', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('5', '深度学习中的序列模型', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', '539', '0.00', '/course/5/lesson', '2017-10-26 11:37:38', 'open', 'bigdata', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('6', '《面试算法LeetCode刷题班》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', '441', '899.00', '/course/6/lesson', '2017-10-26 11:37:38', 'open', 'bigdata', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('7', '《BAT面试算法特训班》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', '1421', '899.00', '/course/7/lesson', '2017-10-26 11:37:38', 'open', 'bigdata', '2', '2017-02-01 21:52:35', '2020-07-30 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('8', '《深度学习》第五期', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', '836', '899.00', '/course/8/lesson', '2017-10-26 11:37:38', 'open', 'bigdata', '2', '2017-02-01 21:52:35', '2020-07-30 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('9', '详解动态规划与隐马尔科夫模型', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', '1387', '0.00', '/course/9/lesson', '2017-10-26 11:37:39', 'open', 'bigdata', '2', '2017-02-01 21:52:35', '2020-07-30 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('10', '普通程序员如何转型到人工智能领域', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '1706', '0.00', '/course/10/lesson', '2017-10-26 11:37:39', 'open', 'bigdata', '2', '2017-02-01 21:52:35', '2020-07-30 21:52:53', 'XBS老师');
-INSERT INTO `tb_course` VALUES ('11', '《Python数据分析升级版》第三期11', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '300', '899.00', '/course/11/lesson', '2017-10-26 11:37:39', 'open', 'bigdata', '2', '2017-02-01 21:52:35', '2020-07-30 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('12', '《深度学习实训:人脸识别项目22》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', '3', '3499.00', '/course/12/lesson', '2017-10-26 11:37:39', 'open', 'bigdata', '2', '2017-02-01 21:52:35', '2020-07-30 21:52:53', 'chinadu');
-INSERT INTO `tb_course` VALUES ('13', '零基础Python入门33', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', '4214', '299.00', '/course/13/lesson', '2017-10-26 11:37:39', 'open', 'bigdata', '1', '2017-02-01 21:52:35', '2020-07-30 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('14', '算法与数据结构中的面试与刷题44', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', '608', '0.00', '/course/14/lesson', '2017-10-26 11:37:39', 'open', 'bigdata', '1', '2017-02-01 21:52:35', '2020-07-30 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('15', '深度学习中的序列模型55', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', '539', '0.00', '/course/15/lesson', '2017-10-26 11:37:39', 'open', 'bigdata', '1', '2017-02-01 21:52:35', '2020-07-30 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('16', '《面试算法LeetCode刷题班》66', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', '441', '899.00', '/course/16/lesson', '2017-10-26 11:37:39', 'open', 'bigdata', '1', '2017-02-01 21:52:35', '2020-07-30 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('17', '《BAT面试算法特训班》77', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', '1421', '899.00', '/course/17/lesson', '2017-10-26 11:37:39', 'open', 'bigdata', '1', '2017-02-01 21:52:35', '2020-07-30 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('18', '《深度学习》第五期88', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', '836', '899.00', '/course/18/lesson', '2017-10-26 11:37:39', 'open', 'bigdata', '1', '2017-02-01 21:52:35', '2020-07-30 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('19', '详解动态规划与隐马尔科夫模型99', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', '1387', '0.00', '/course/19/lesson', '2017-10-26 11:37:39', 'systematic', 'bigdata', '1', '2017-02-01 21:52:35', '2020-07-30 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('20', '普通程序员如何转型到人工智能领域00', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '1706', '0.00', '/course/20/lesson', '2017-10-26 11:37:39', 'systematic', 'bigdata', '1', '2017-02-01 21:52:35', '2020-07-30 21:52:53', 'XBS老师');
-INSERT INTO `tb_course` VALUES ('21', '《Python数据分析升级版》第三期21', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '300', '899.00', '/course/21/lesson', '2017-10-26 11:37:39', 'systematic', 'bigdata', '2', '2017-02-01 21:52:35', '2020-07-30 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('22', '《深度学习实训:人脸识别项目》22', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', '3', '3499.00', '/course/22/lesson', '2017-10-26 11:37:39', 'systematic', 'bigdata', '2', '2017-02-01 21:52:35', '2020-07-30 21:52:53', 'chinadu');
-INSERT INTO `tb_course` VALUES ('23', '零基础Python入门23', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', '4214', '299.00', '/course/23/lesson', '2017-10-26 11:37:39', 'systematic', 'bigdata', '2', '2017-02-01 21:52:35', '2020-07-30 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('24', '算法与数据结构中的面试与刷题24', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', '608', '0.00', '/course/24/lesson', '2017-10-26 11:37:39', 'systematic', 'bigdata', '2', '2017-02-01 21:52:35', '2020-07-30 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('25', '深度学习中的序列模型25', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', '539', '0.00', '/course/25/lesson', '2017-10-26 11:37:39', 'systematic', 'bigdata', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('26', '《面试算法LeetCode刷题班》26', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', '441', '899.00', '/course/26/lesson', '2017-10-26 11:37:39', 'systematic', 'bigdata', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('27', '《BAT面试算法特训班》27', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', '1421', '899.00', '/course/27/lesson', '2017-10-26 11:37:39', 'systematic', 'bigdata', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('28', '《深度学习》第五期28', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', '836', '899.00', '/course/28/lesson', '2017-10-26 11:37:39', 'systematic', 'bigdata', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('29', '详解动态规划与隐马尔科夫模型29', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', '1387', '0.00', '/course/29/lesson', '2017-10-26 11:37:39', 'systematic', 'bigdata', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('30', '普通程序员如何转型到人工智能领域30', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '1706', '0.00', '/course/30/lesson', '2017-10-26 11:37:39', 'systematic', 'bigdata', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'XBS老师');
-INSERT INTO `tb_course` VALUES ('31', '《Python数据分析升级版》第三期31', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '300', '899.00', '/course/31/lesson', '2017-10-26 11:37:39', 'systematic', 'bigdata', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('32', '《深度学习实训:人脸识别项目32》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', '3', '3499.00', '/course/32/lesson', '2017-10-26 11:37:39', 'systematic', 'bigdata', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
-INSERT INTO `tb_course` VALUES ('33', '零基础Python入门33', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', '4214', '299.00', '/course/33/lesson', '2017-10-26 11:37:39', 'systematic', 'bigdata', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('34', '算法与数据结构中的面试与刷题34', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', '608', '0.00', '/course/34/lesson', '2017-10-26 11:37:39', 'systematic', 'bigdata', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('35', '深度学习中的序列模型35', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', '539', '0.00', '/course/35/lesson', '2017-10-26 11:37:39', 'systematic', 'bigdata', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('36', '《面试算法LeetCode刷题班》36', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', '441', '899.00', '/course/36/lesson', '2017-10-26 11:37:39', 'systematic', 'bigdata', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('37', '《BAT面试算法特训班》37', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', '1421', '899.00', '/course/37/lesson', '2017-10-26 11:37:39', 'systematic', 'bigdata', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('38', '《深度学习》第五期38', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', '836', '899.00', '/course/38/lesson', '2017-10-26 11:37:39', 'systematic', 'bigdata', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('39', '详解动态规划与隐马尔科夫模型39', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', '1387', '0.00', '/course/39/lesson', '2017-10-26 11:37:39', 'systematic', 'bigdata', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('40', '普通程序员如何转型到人工智能领域40', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '1706', '0.00', '/course/40/lesson', '2017-10-26 11:37:39', 'bootcamp', 'bigdata', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'XBS老师');
-INSERT INTO `tb_course` VALUES ('41', '《Python数据分析升级版》第三期', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '300', '899.00', '/course/41/lesson', '2017-10-26 11:37:39', 'bootcamp', 'bigdata', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('42', '《深度学习实训:人脸识别项目》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', '3', '3499.00', '/course/42/lesson', '2017-10-26 11:37:40', 'bootcamp', 'bigdata', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
-INSERT INTO `tb_course` VALUES ('43', '零基础Python入门', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', '4214', '299.00', '/course/43/lesson', '2017-10-26 11:37:40', 'bootcamp', 'bigdata', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('44', '算法与数据结构中的面试与刷题', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', '608', '0.00', '/course/44/lesson', '2017-10-26 11:37:40', 'bootcamp', 'bigdata', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('45', '深度学习中的序列模型', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', '539', '0.00', '/course/45/lesson', '2017-10-26 11:37:40', 'bootcamp', 'bigdata', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('46', '《面试算法LeetCode刷题班》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', '441', '899.00', '/course/46/lesson', '2017-10-26 11:37:40', 'bootcamp', 'bigdata', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('47', '《BAT面试算法特训班》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', '1421', '899.00', '/course/47/lesson', '2017-10-26 11:37:40', 'bootcamp', 'bigdata', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('48', '《深度学习》第五期', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', '836', '899.00', '/course/48/lesson', '2017-10-26 11:37:40', 'bootcamp', 'bigdata', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('49', '详解动态规划与隐马尔科夫模型', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', '1387', '0.00', '/course/49/lesson', '2017-10-26 11:37:40', 'bootcamp', 'bigdata', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('50', '普通程序员如何转型到人工智能领域', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '1706', '0.00', '/course/50/lesson', '2017-10-26 11:37:40', 'bootcamp', 'bigdata', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'XBS老师');
-INSERT INTO `tb_course` VALUES ('51', '《Python数据分析升级版》第三期11', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '300', '899.00', '/course/51/lesson', '2017-10-26 11:37:40', 'bootcamp', 'bigdata', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('52', '《深度学习实训:人脸识别项目22》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', '3', '3499.00', '/course/52/lesson', '2017-10-26 11:37:40', 'bootcamp', 'ai', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
-INSERT INTO `tb_course` VALUES ('53', '零基础Python入门33', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', '4214', '299.00', '/course/53/lesson', '2017-10-26 11:37:40', 'bootcamp', 'ai', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('54', '算法与数据结构中的面试与刷题44', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', '608', '0.00', '/course/54/lesson', '2017-10-26 11:37:40', 'bootcamp', 'ai', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('55', '深度学习中的序列模型55', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', '539', '0.00', '/course/55/lesson', '2017-10-26 11:37:40', 'bootcamp', 'ai', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('56', '《面试算法LeetCode刷题班》66', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', '441', '899.00', '/course/56/lesson', '2017-10-26 11:37:40', 'bootcamp', 'ai', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('57', '《BAT面试算法特训班》77', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', '1421', '899.00', '/course/57/lesson', '2017-10-26 11:37:40', 'bootcamp', 'ai', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('58', '《深度学习》第五期88', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', '836', '899.00', '/course/58/lesson', '2017-10-26 11:37:40', 'bootcamp', 'ai', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('59', '详解动态规划与隐马尔科夫模型99', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', '1387', '0.00', '/course/59/lesson', '2017-10-26 11:37:40', 'bootcamp', 'ai', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('60', '普通程序员如何转型到人工智能领域00', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '1706', '0.00', '/course/60/lesson', '2017-10-26 11:37:40', 'bootcamp', 'ai', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'XBS老师');
-INSERT INTO `tb_course` VALUES ('61', '《Python数据分析升级版》第三期21', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '300', '899.00', '/course/61/lesson', '2017-10-26 11:37:40', 'systematic', 'ai', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('62', '《深度学习实训:人脸识别项目》22', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', '3', '3499.00', '/course/62/lesson', '2017-10-26 11:37:40', 'systematic', 'ai', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
-INSERT INTO `tb_course` VALUES ('63', '零基础Python入门23', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', '4214', '299.00', '/course/63/lesson', '2017-10-26 11:37:40', 'systematic', 'ai', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('64', '算法与数据结构中的面试与刷题24', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', '608', '0.00', '/course/64/lesson', '2017-10-26 11:37:41', 'systematic', 'ai', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('65', '深度学习中的序列模型25', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', '539', '0.00', '/course/65/lesson', '2017-10-26 11:37:41', 'systematic', 'ai', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('66', '《面试算法LeetCode刷题班》26', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', '441', '899.00', '/course/66/lesson', '2017-10-26 11:37:41', 'systematic', 'ai', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('67', '《BAT面试算法特训班》27', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', '1421', '899.00', '/course/67/lesson', '2017-10-26 11:37:41', 'systematic', 'ai', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('68', '《深度学习》第五期28', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', '836', '899.00', '/course/68/lesson', '2017-10-26 11:37:41', 'systematic', 'ai', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('69', '详解动态规划与隐马尔科夫模型29', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', '1387', '0.00', '/course/69/lesson', '2017-10-26 11:37:41', 'systematic', 'ai', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('70', '普通程序员如何转型到人工智能领域30', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '1706', '0.00', '/course/70/lesson', '2017-10-26 11:37:41', 'systematic', 'ai', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'XBS老师');
-INSERT INTO `tb_course` VALUES ('71', '《Python数据分析升级版》第三期31', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '300', '899.00', '/course/71/lesson', '2017-10-26 11:37:41', 'systematic', 'ai', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('72', '《深度学习实训:人脸识别项目32》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', '3', '3499.00', '/course/72/lesson', '2017-10-26 11:37:41', 'systematic', 'ai', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
-INSERT INTO `tb_course` VALUES ('73', '零基础Python入门33', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', '4214', '299.00', '/course/73/lesson', '2017-10-26 11:37:41', 'systematic', 'ai', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('74', '算法与数据结构中的面试与刷题34', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', '608', '0.00', '/course/74/lesson', '2017-10-26 11:37:41', 'systematic', 'ai', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('75', '深度学习中的序列模型35', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', '539', '0.00', '/course/75/lesson', '2017-10-26 11:37:41', 'systematic', 'ai', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('76', '《面试算法LeetCode刷题班》36', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', '441', '899.00', '/course/76/lesson', '2017-10-26 11:37:41', 'systematic', 'ai', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('77', '《BAT面试算法特训班》37', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', '1421', '899.00', '/course/77/lesson', '2017-10-26 11:37:41', 'systematic', 'ai', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('78', '《深度学习》第五期38', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', '836', '899.00', '/course/78/lesson', '2017-10-26 11:37:41', 'systematic', 'ai', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('79', '详解动态规划与隐马尔科夫模型39', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', '1387', '0.00', '/course/79/lesson', '2017-10-26 11:37:41', 'systematic', 'ai', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('80', '普通程序员如何转型到人工智能领域40', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '1706', '0.00', '/course/80/lesson', '2017-10-26 11:37:41', 'systematic', 'ai', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'XBS老师');
-INSERT INTO `tb_course` VALUES ('81', '《Python数据分析升级版》第三期', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '300', '899.00', '/course/81/lesson', '2017-10-26 11:37:41', 'systematic', 'ai', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('82', '《深度学习实训:人脸识别项目》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', '3', '3499.00', '/course/82/lesson', '2017-10-26 11:37:41', 'systematic', 'ai', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
-INSERT INTO `tb_course` VALUES ('83', '零基础Python入门', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', '4214', '299.00', '/course/83/lesson', '2017-10-26 11:37:41', 'systematic', 'ai', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('84', '算法与数据结构中的面试与刷题', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', '608', '0.00', '/course/84/lesson', '2017-10-26 11:37:41', 'systematic', 'ai', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('85', '深度学习中的序列模型', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', '539', '0.00', '/course/85/lesson', '2017-10-26 11:37:41', 'systematic', 'ai', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('86', '《面试算法LeetCode刷题班》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', '441', '899.00', '/course/86/lesson', '2017-10-26 11:37:41', 'systematic', 'ai', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('87', '《BAT面试算法特训班》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', '1421', '899.00', '/course/87/lesson', '2017-10-26 11:37:41', 'systematic', 'ai', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('88', '《深度学习》第五期', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', '836', '899.00', '/course/88/lesson', '2017-10-26 11:37:41', 'systematic', 'ai', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('89', '详解动态规划与隐马尔科夫模型', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', '1387', '0.00', '/course/89/lesson', '2017-10-26 11:37:41', 'systematic', 'ai', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('90', '普通程序员如何转型到人工智能领域', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '1706', '0.00', '/course/90/lesson', '2017-10-26 11:37:42', 'systematic', 'ai', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'XBS老师');
-INSERT INTO `tb_course` VALUES ('91', '《Python数据分析升级版》第三期11', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '300', '899.00', '/course/91/lesson', '2017-10-26 11:37:42', 'systematic', 'ai', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('92', '《深度学习实训:人脸识别项目22》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', '3', '3499.00', '/course/92/lesson', '2017-10-26 11:37:42', 'systematic', 'ai', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
-INSERT INTO `tb_course` VALUES ('93', '零基础Python入门33', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', '4214', '299.00', '/course/93/lesson', '2017-10-26 11:37:42', 'systematic', 'ai', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('94', '算法与数据结构中的面试与刷题44', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', '608', '0.00', '/course/94/lesson', '2017-10-26 11:37:42', 'systematic', 'ai', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('95', '深度学习中的序列模型55', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', '539', '0.00', '/course/95/lesson', '2017-10-26 11:37:42', 'systematic', 'ai', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('96', '《面试算法LeetCode刷题班》66', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', '441', '899.00', '/course/96/lesson', '2017-10-26 11:37:42', 'systematic', 'ai', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('97', '《BAT面试算法特训班》77', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', '1421', '899.00', '/course/97/lesson', '2017-10-26 11:37:42', 'systematic', 'ai', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('98', '《深度学习》第五期88', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', '836', '899.00', '/course/98/lesson', '2017-10-26 11:37:42', 'systematic', 'ai', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('99', '详解动态规划与隐马尔科夫模型99', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', '1387', '0.00', '/course/99/lesson', '2017-10-26 11:37:42', 'systematic', 'ai', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('100', '普通程序员如何转型到人工智能领域00', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '1706', '0.00', '/course/100/lesson', '2017-10-26 11:37:42', 'systematic', 'ai', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'XBS老师');
-INSERT INTO `tb_course` VALUES ('101', '《Python数据分析升级版》第三期21', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '300', '899.00', '/course/101/lesson', '2017-10-26 11:37:42', 'systematic', 'ai', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('102', '《深度学习实训:人脸识别项目》22', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', '3', '3499.00', '/course/102/lesson', '2017-10-26 11:37:42', 'systematic', 'ai', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
-INSERT INTO `tb_course` VALUES ('103', '零基础Python入门23', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', '4214', '299.00', '/course/103/lesson', '2017-10-26 11:37:42', 'systematic', 'ai', '1', '2017-02-01 21:52:35', '2020-07-30 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('104', '算法与数据结构中的面试与刷题24', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', '608', '0.00', '/course/104/lesson', '2017-10-26 11:37:42', 'systematic', 'ai', '1', '2017-02-01 21:52:35', '2020-07-30 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('105', '深度学习中的序列模型25', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', '539', '0.00', '/course/105/lesson', '2017-10-26 11:37:42', 'systematic', 'ai', '1', '2017-02-01 21:52:35', '2020-07-30 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('106', '《面试算法LeetCode刷题班》26', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', '441', '899.00', '/course/106/lesson', '2017-10-26 11:37:42', 'systematic', 'ai', '1', '2017-02-01 21:52:35', '2020-07-30 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('107', '《BAT面试算法特训班》27', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', '1421', '899.00', '/course/107/lesson', '2017-10-26 11:37:42', 'systematic', 'ai', '1', '2017-02-01 21:52:35', '2020-07-30 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('108', '《深度学习》第五期28', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', '836', '899.00', '/course/108/lesson', '2017-10-26 11:37:42', 'systematic', 'ai', '1', '2017-02-01 21:52:35', '2020-07-30 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('109', '详解动态规划与隐马尔科夫模型29', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', '1387', '0.00', '/course/109/lesson', '2017-10-26 11:37:42', 'systematic', 'ai', '1', '2017-02-01 21:52:35', '2020-07-30 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('110', '普通程序员如何转型到人工智能领域30', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '1706', '0.00', '/course/110/lesson', '2017-10-26 11:37:42', 'systematic', 'ai', '1', '2017-02-01 21:52:35', '2020-07-30 21:52:53', 'XBS老师');
-INSERT INTO `tb_course` VALUES ('111', '《Python数据分析升级版》第三期31', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '300', '899.00', '/course/111/lesson', '2017-10-26 11:37:42', 'systematic', 'ai', '1', '2017-02-01 21:52:35', '2020-07-30 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('112', '《深度学习实训:人脸识别项目32》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', '3', '3499.00', '/course/112/lesson', '2017-10-26 11:37:42', 'systematic', 'ai', '1', '2017-02-01 21:52:35', '2020-07-30 21:52:53', 'chinadu');
-INSERT INTO `tb_course` VALUES ('113', '零基础Python入门33', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', '4214', '299.00', '/course/113/lesson', '2017-10-26 11:37:42', 'systematic', 'ai', '1', '2017-02-01 21:52:35', '2020-07-30 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('114', '算法与数据结构中的面试与刷题34', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', '608', '0.00', '/course/114/lesson', '2017-10-26 11:37:42', 'systematic', 'ai', '1', '2017-02-01 21:52:35', '2020-07-30 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('115', '深度学习中的序列模型35', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', '539', '0.00', '/course/115/lesson', '2017-10-26 11:37:43', 'systematic', 'ai', '1', '2017-02-01 21:52:35', '2020-07-30 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('116', '《面试算法LeetCode刷题班》36', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', '441', '899.00', '/course/116/lesson', '2017-10-26 11:37:43', 'systematic', 'ai', '1', '2017-02-01 21:52:35', '2020-07-30 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('117', '《BAT面试算法特训班》37', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', '1421', '899.00', '/course/117/lesson', '2017-10-26 11:37:43', 'systematic', 'ai', '1', '2017-02-01 21:52:35', '2020-07-30 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('118', '《深度学习》第五期38', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', '836', '899.00', '/course/118/lesson', '2017-10-26 11:37:43', 'systematic', 'ai', '1', '2017-02-01 21:52:35', '2020-07-30 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('119', '详解动态规划与隐马尔科夫模型39', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', '1387', '0.00', '/course/119/lesson', '2017-10-26 11:37:43', 'systematic', 'ai', '1', '2017-02-01 21:52:35', '2020-07-30 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('120', '普通程序员如何转型到人工智能领域40', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '1706', '0.00', '/course/120/lesson', '2017-10-26 11:37:43', 'systematic', 'ai', '1', '2017-02-01 21:52:35', '2020-07-30 21:52:53', 'XBS老师');
-INSERT INTO `tb_course` VALUES ('121', '《Python数据分析升级版》第三期', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '300', '899.00', '/course/121/lesson', '2017-10-26 11:37:43', 'open', 'ai', '1', '2017-02-01 21:52:35', '2020-07-30 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('122', '《深度学习实训:人脸识别项目》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', '3', '3499.00', '/course/122/lesson', '2017-10-26 11:37:43', 'open', 'ai', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
-INSERT INTO `tb_course` VALUES ('123', '零基础Python入门', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', '4214', '299.00', '/course/123/lesson', '2017-10-26 11:37:43', 'open', 'ai', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('124', '算法与数据结构中的面试与刷题', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', '608', '0.00', '/course/124/lesson', '2017-10-26 11:37:43', 'open', 'ai', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('125', '深度学习中的序列模型', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', '539', '0.00', '/course/125/lesson', '2017-10-26 11:37:43', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('126', '《面试算法LeetCode刷题班》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', '441', '899.00', '/course/126/lesson', '2017-10-26 11:37:43', 'bootcamp', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('127', '《BAT面试算法特训班》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', '1421', '899.00', '/course/127/lesson', '2017-10-26 11:37:43', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('128', '《深度学习》第五期', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', '836', '899.00', '/course/128/lesson', '2017-10-26 11:37:43', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('129', '详解动态规划与隐马尔科夫模型', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', '1387', '0.00', '/course/129/lesson', '2017-10-26 11:37:43', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('130', '普通程序员如何转型到人工智能领域', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '1706', '0.00', '/course/130/lesson', '2017-10-26 11:37:43', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'XBS老师');
-INSERT INTO `tb_course` VALUES ('131', '《Python数据分析升级版》第三期11', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '300', '899.00', '/course/131/lesson', '2017-10-26 11:37:43', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('132', '《深度学习实训:人脸识别项目22》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', '3', '3499.00', '/course/132/lesson', '2017-10-26 11:37:43', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
-INSERT INTO `tb_course` VALUES ('133', '零基础Python入门33', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', '4214', '299.00', '/course/133/lesson', '2017-10-26 11:37:43', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('134', '算法与数据结构中的面试与刷题44', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', '608', '0.00', '/course/134/lesson', '2017-10-26 11:37:43', 'systematic', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('135', '深度学习中的序列模型55', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', '539', '0.00', '/course/135/lesson', '2017-10-26 11:37:43', 'systematic', 'basic', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('136', '《面试算法LeetCode刷题班》66', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', '441', '899.00', '/course/136/lesson', '2017-10-26 11:37:43', 'systematic', 'basic', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('137', '《BAT面试算法特训班》77', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', '1421', '899.00', '/course/137/lesson', '2017-10-26 11:37:43', 'systematic', 'basic', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('138', '《深度学习》第五期88', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', '836', '899.00', '/course/138/lesson', '2017-10-26 11:37:43', 'systematic', 'basic', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('139', '详解动态规划与隐马尔科夫模型99', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', '1387', '0.00', '/course/139/lesson', '2017-10-26 11:37:43', 'systematic', 'basic', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('140', '普通程序员如何转型到人工智能领域00', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '1706', '0.00', '/course/140/lesson', '2017-10-26 11:37:43', 'open', 'basic', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'XBS老师');
-INSERT INTO `tb_course` VALUES ('141', '《Python数据分析升级版》第三期21', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '300', '899.00', '/course/141/lesson', '2017-10-26 11:37:43', 'open', 'basic', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('142', '《深度学习实训:人脸识别项目》22', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', '3', '3499.00', '/course/142/lesson', '2017-10-26 11:37:43', 'open', 'basic', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
-INSERT INTO `tb_course` VALUES ('143', '零基础Python入门23', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', '4214', '299.00', '/course/143/lesson', '2017-10-26 11:37:43', 'open', 'basic', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('144', '算法与数据结构中的面试与刷题24', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', '608', '0.00', '/course/144/lesson', '2017-10-26 11:37:43', 'open', 'basic', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('145', '深度学习中的序列模型25', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', '539', '0.00', '/course/145/lesson', '2017-10-26 11:37:44', 'open', 'basic', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('146', '《面试算法LeetCode刷题班》26', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', '441', '899.00', '/course/146/lesson', '2017-10-26 11:37:44', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('147', '《BAT面试算法特训班》27', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', '1421', '899.00', '/course/147/lesson', '2017-10-26 11:37:44', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('148', '《深度学习》第五期28', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', '836', '899.00', '/course/148/lesson', '2017-10-26 11:37:44', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('149', '详解动态规划与隐马尔科夫模型29', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', '1387', '0.00', '/course/149/lesson', '2017-10-26 11:37:44', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('150', '普通程序员如何转型到人工智能领域30', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '1706', '0.00', '/course/150/lesson', '2017-10-26 11:37:44', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'XBS老师');
-INSERT INTO `tb_course` VALUES ('151', '《Python数据分析升级版》第三期31', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '300', '899.00', '/course/151/lesson', '2017-10-26 11:37:44', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('152', '《深度学习实训:人脸识别项目32》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', '3', '3499.00', '/course/152/lesson', '2017-10-26 11:37:44', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
-INSERT INTO `tb_course` VALUES ('153', '零基础Python入门33', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', '4214', '299.00', '/course/153/lesson', '2017-10-26 11:37:44', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('154', '算法与数据结构中的面试与刷题34', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', '608', '0.00', '/course/154/lesson', '2017-10-26 11:37:44', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('155', '深度学习中的序列模型35', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', '539', '0.00', '/course/155/lesson', '2017-10-26 11:37:44', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('156', '《面试算法LeetCode刷题班》36', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', '441', '899.00', '/course/156/lesson', '2017-10-26 11:37:44', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('157', '《BAT面试算法特训班》37', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', '1421', '899.00', '/course/157/lesson', '2017-10-26 11:37:44', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('158', '《深度学习》第五期38', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', '836', '899.00', '/course/158/lesson', '2017-10-26 11:37:44', 'systematic', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('159', '详解动态规划与隐马尔科夫模型39', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', '1387', '0.00', '/course/159/lesson', '2017-10-26 11:37:44', 'systematic', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('160', '普通程序员如何转型到人工智能领域40', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '1706', '0.00', '/course/160/lesson', '2017-10-26 11:37:44', 'systematic', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'XBS老师');
-INSERT INTO `tb_course` VALUES ('161', '《Python数据分析升级版》第三期', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '300', '899.00', '/course/161/lesson', '2017-10-26 11:37:44', 'systematic', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('162', '《深度学习实训:人脸识别项目》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', '3', '3499.00', '/course/162/lesson', '2017-10-26 11:37:44', 'systematic', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
-INSERT INTO `tb_course` VALUES ('163', '零基础Python入门', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', '4214', '299.00', '/course/163/lesson', '2017-10-26 11:37:44', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('164', '算法与数据结构中的面试与刷题', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', '608', '0.00', '/course/164/lesson', '2017-10-26 11:37:44', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('165', '深度学习中的序列模型', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', '539', '0.00', '/course/165/lesson', '2017-10-26 11:37:44', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('166', '《面试算法LeetCode刷题班》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', '441', '899.00', '/course/166/lesson', '2017-10-26 11:37:44', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('167', '《BAT面试算法特训班》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', '1421', '899.00', '/course/167/lesson', '2017-10-26 11:37:44', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('168', '《深度学习》第五期', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', '836', '899.00', '/course/168/lesson', '2017-10-26 11:37:44', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('169', '详解动态规划与隐马尔科夫模型', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', '1387', '0.00', '/course/169/lesson', '2017-10-26 11:37:44', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('170', '普通程序员如何转型到人工智能领域', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '1706', '0.00', '/course/170/lesson', '2017-10-26 11:37:44', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'XBS老师');
-INSERT INTO `tb_course` VALUES ('171', '《Python数据分析升级版》第三期11', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '300', '899.00', '/course/171/lesson', '2017-10-26 11:37:44', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('172', '《深度学习实训:人脸识别项目22》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', '3', '3499.00', '/course/172/lesson', '2017-10-26 11:37:44', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
-INSERT INTO `tb_course` VALUES ('173', '零基础Python入门33', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', '4214', '299.00', '/course/173/lesson', '2017-10-26 11:37:44', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('174', '算法与数据结构中的面试与刷题44', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', '608', '0.00', '/course/174/lesson', '2017-10-26 11:37:44', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('175', '深度学习中的序列模型55', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', '539', '0.00', '/course/175/lesson', '2017-10-26 11:37:45', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('176', '《面试算法LeetCode刷题班》66', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', '441', '899.00', '/course/176/lesson', '2017-10-26 11:37:45', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('177', '《BAT面试算法特训班》77', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', '1421', '899.00', '/course/177/lesson', '2017-10-26 11:37:45', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('178', '《深度学习》第五期88', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', '836', '899.00', '/course/178/lesson', '2017-10-26 11:37:45', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('179', '详解动态规划与隐马尔科夫模型99', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', '1387', '0.00', '/course/179/lesson', '2017-10-26 11:37:45', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('180', '普通程序员如何转型到人工智能领域00', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '1706', '0.00', '/course/180/lesson', '2017-10-26 11:37:45', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'XBS老师');
-INSERT INTO `tb_course` VALUES ('181', '《Python数据分析升级版》第三期21', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '300', '899.00', '/course/181/lesson', '2017-10-26 11:37:45', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('182', '《深度学习实训:人脸识别项目》22', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', '3', '3499.00', '/course/182/lesson', '2017-10-26 11:37:45', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
-INSERT INTO `tb_course` VALUES ('183', '零基础Python入门23', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', '4214', '299.00', '/course/183/lesson', '2017-10-26 11:37:45', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('184', '算法与数据结构中的面试与刷题24', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', '608', '0.00', '/course/184/lesson', '2017-10-26 11:37:45', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('185', '深度学习中的序列模型25', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', '539', '0.00', '/course/185/lesson', '2017-10-26 11:37:45', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('186', '《面试算法LeetCode刷题班》26', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', '441', '899.00', '/course/186/lesson', '2017-10-26 11:37:45', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('187', '《BAT面试算法特训班》27', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', '1421', '899.00', '/course/187/lesson', '2017-10-26 11:37:45', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('188', '《深度学习》第五期28', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', '836', '899.00', '/course/188/lesson', '2017-10-26 11:37:45', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('189', '详解动态规划与隐马尔科夫模型29', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', '1387', '0.00', '/course/189/lesson', '2017-10-26 11:37:45', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('190', '普通程序员如何转型到人工智能领域30', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '1706', '0.00', '/course/190/lesson', '2017-10-26 11:37:45', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'XBS老师');
-INSERT INTO `tb_course` VALUES ('191', '《Python数据分析升级版》第三期31', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '300', '899.00', '/course/191/lesson', '2017-10-26 11:37:45', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('192', '《深度学习实训:人脸识别项目32》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', '3', '3499.00', '/course/192/lesson', '2017-10-26 11:37:45', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
-INSERT INTO `tb_course` VALUES ('193', '零基础Python入门33', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', '4214', '299.00', '/course/193/lesson', '2017-10-26 11:37:45', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('194', '算法与数据结构中的面试与刷题34', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', '608', '0.00', '/course/194/lesson', '2017-10-26 11:37:45', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('195', '深度学习中的序列模型35', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', '539', '0.00', '/course/195/lesson', '2017-10-26 11:37:45', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('196', '《面试算法LeetCode刷题班》36', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', '441', '899.00', '/course/196/lesson', '2017-10-26 11:37:45', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('197', '《BAT面试算法特训班》37', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', '1421', '899.00', '/course/197/lesson', '2017-10-26 11:37:45', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('198', '《深度学习》第五期38', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', '836', '899.00', '/course/198/lesson', '2017-10-26 11:37:45', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('199', '详解动态规划与隐马尔科夫模型39', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', '1387', '0.00', '/course/199/lesson', '2017-10-26 11:37:45', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('200', '普通程序员如何转型到人工智能领域40', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '1706', '0.00', '/course/200/lesson', '2017-10-26 11:37:45', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'XBS老师');
-INSERT INTO `tb_course` VALUES ('201', '《Python数据分析升级版》第三期', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '300', '899.00', '/course/201/lesson', '2017-10-26 11:37:45', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('202', '《深度学习实训:人脸识别项目》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', '3', '3499.00', '/course/202/lesson', '2017-10-26 11:37:45', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
-INSERT INTO `tb_course` VALUES ('203', '零基础Python入门', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', '4214', '299.00', '/course/203/lesson', '2017-10-26 11:37:45', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('204', '算法与数据结构中的面试与刷题', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', '608', '0.00', '/course/204/lesson', '2017-10-26 11:37:45', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('205', '深度学习中的序列模型', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', '539', '0.00', '/course/205/lesson', '2017-10-26 11:37:46', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('206', '《面试算法LeetCode刷题班》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', '441', '899.00', '/course/206/lesson', '2017-10-26 11:37:46', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('207', '《BAT面试算法特训班》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', '1421', '899.00', '/course/207/lesson', '2017-10-26 11:37:46', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('208', '《深度学习》第五期', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', '836', '899.00', '/course/208/lesson', '2017-10-26 11:37:46', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('209', '详解动态规划与隐马尔科夫模型', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', '1387', '0.00', '/course/209/lesson', '2017-10-26 11:37:46', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('210', '普通程序员如何转型到人工智能领域', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '1706', '0.00', '/course/210/lesson', '2017-10-26 11:37:46', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'XBS老师');
-INSERT INTO `tb_course` VALUES ('211', '《Python数据分析升级版》第三期11', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '300', '899.00', '/course/211/lesson', '2017-10-26 11:37:46', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('212', '《深度学习实训:人脸识别项目22》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', '3', '3499.00', '/course/212/lesson', '2017-10-26 11:37:46', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
-INSERT INTO `tb_course` VALUES ('213', '零基础Python入门33', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', '4214', '299.00', '/course/213/lesson', '2017-10-26 11:37:46', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('214', '算法与数据结构中的面试与刷题44', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', '608', '0.00', '/course/214/lesson', '2017-10-26 11:37:46', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('215', '深度学习中的序列模型55', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', '539', '0.00', '/course/215/lesson', '2017-10-26 11:37:46', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('216', '《面试算法LeetCode刷题班》66', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', '441', '899.00', '/course/216/lesson', '2017-10-26 11:37:46', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('217', '《BAT面试算法特训班》77', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', '1421', '899.00', '/course/217/lesson', '2017-10-26 11:37:46', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('218', '《深度学习》第五期88', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', '836', '899.00', '/course/218/lesson', '2017-10-26 11:37:46', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('219', '详解动态规划与隐马尔科夫模型99', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', '1387', '0.00', '/course/219/lesson', '2017-10-26 11:37:46', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('220', '普通程序员如何转型到人工智能领域00', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '1706', '0.00', '/course/220/lesson', '2017-10-26 11:37:46', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'XBS老师');
-INSERT INTO `tb_course` VALUES ('221', '《Python数据分析升级版》第三期21', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '300', '899.00', '/course/221/lesson', '2017-10-26 11:37:46', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('222', '《深度学习实训:人脸识别项目》22', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', '3', '3499.00', '/course/222/lesson', '2017-10-26 11:37:46', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
-INSERT INTO `tb_course` VALUES ('223', '零基础Python入门23', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', '4214', '299.00', '/course/223/lesson', '2017-10-26 11:37:46', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('224', '算法与数据结构中的面试与刷题24', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', '608', '0.00', '/course/224/lesson', '2017-10-26 11:37:46', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('225', '深度学习中的序列模型25', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', '539', '0.00', '/course/225/lesson', '2017-10-26 11:37:46', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('226', '《面试算法LeetCode刷题班》26', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', '441', '899.00', '/course/226/lesson', '2017-10-26 11:37:46', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('227', '《BAT面试算法特训班》27', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', '1421', '899.00', '/course/227/lesson', '2017-10-26 11:37:46', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('228', '《深度学习》第五期28', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', '836', '899.00', '/course/228/lesson', '2017-10-26 11:37:46', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('229', '详解动态规划与隐马尔科夫模型29', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', '1387', '0.00', '/course/229/lesson', '2017-10-26 11:37:46', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('230', '普通程序员如何转型到人工智能领域30', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '1706', '0.00', '/course/230/lesson', '2017-10-26 11:37:46', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'XBS老师');
-INSERT INTO `tb_course` VALUES ('231', '《Python数据分析升级版》第三期31', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '300', '899.00', '/course/231/lesson', '2017-10-26 11:37:46', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('232', '《深度学习实训:人脸识别项目32》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', '3', '3499.00', '/course/232/lesson', '2017-10-26 11:37:46', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
-INSERT INTO `tb_course` VALUES ('233', '零基础Python入门33', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', '4214', '299.00', '/course/233/lesson', '2017-10-26 11:37:47', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('234', '算法与数据结构中的面试与刷题34', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', '608', '0.00', '/course/234/lesson', '2017-10-26 11:37:47', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('235', '深度学习中的序列模型35', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', '539', '0.00', '/course/235/lesson', '2017-10-26 11:37:47', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('236', '《面试算法LeetCode刷题班》36', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', '441', '899.00', '/course/236/lesson', '2017-10-26 11:37:47', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('237', '《BAT面试算法特训班》37', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', '1421', '899.00', '/course/237/lesson', '2017-10-26 11:37:47', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('238', '《深度学习》第五期38', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', '836', '899.00', '/course/238/lesson', '2017-10-26 11:37:47', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('239', '详解动态规划与隐马尔科夫模型39', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', '1387', '0.00', '/course/239/lesson', '2017-10-26 11:37:47', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('240', '普通程序员如何转型到人工智能领域40', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '1706', '0.00', '/course/240/lesson', '2017-10-26 11:37:47', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'XBS老师');
-INSERT INTO `tb_course` VALUES ('241', '《Python数据分析升级版》第三期', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '300', '899.00', '/course/241/lesson', '2017-10-26 11:37:47', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('242', '《深度学习实训:人脸识别项目》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', '3', '3499.00', '/course/242/lesson', '2017-10-26 11:37:47', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
-INSERT INTO `tb_course` VALUES ('243', '零基础Python入门', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', '4214', '299.00', '/course/243/lesson', '2017-10-26 11:37:47', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('244', '算法与数据结构中的面试与刷题', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', '608', '0.00', '/course/244/lesson', '2017-10-26 11:37:47', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('245', '深度学习中的序列模型', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', '539', '0.00', '/course/245/lesson', '2017-10-26 11:37:47', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('246', '《面试算法LeetCode刷题班》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', '441', '899.00', '/course/246/lesson', '2017-10-26 11:37:47', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('247', '《BAT面试算法特训班》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', '1421', '899.00', '/course/247/lesson', '2017-10-26 11:37:47', 'open', 'basic', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('248', '《深度学习》第五期', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', '836', '899.00', '/course/248/lesson', '2017-10-26 11:37:47', 'open', 'basic', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('249', '详解动态规划与隐马尔科夫模型', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', '1387', '0.00', '/course/249/lesson', '2017-10-26 11:37:47', 'open', 'basic', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('250', '普通程序员如何转型到人工智能领域', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '1706', '0.00', '/course/250/lesson', '2017-10-26 11:37:47', 'open', 'basic', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'XBS老师');
-INSERT INTO `tb_course` VALUES ('251', '《Python数据分析升级版》第三期11', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '300', '899.00', '/course/251/lesson', '2017-10-26 11:37:47', 'open', 'basic', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('252', '《深度学习实训:人脸识别项目22》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', '3', '3499.00', '/course/252/lesson', '2017-10-26 11:37:47', 'open', 'basic', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
-INSERT INTO `tb_course` VALUES ('253', '零基础Python入门33', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', '4214', '299.00', '/course/253/lesson', '2017-10-26 11:37:47', 'open', 'basic', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('254', '算法与数据结构中的面试与刷题44', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', '608', '0.00', '/course/254/lesson', '2017-10-26 11:37:47', 'open', 'basic', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('255', '深度学习中的序列模型55', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', '539', '0.00', '/course/255/lesson', '2017-10-26 11:37:47', 'open', 'basic', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('256', '《面试算法LeetCode刷题班》66', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', '441', '899.00', '/course/256/lesson', '2017-10-26 11:37:47', 'open', 'basic', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('257', '《BAT面试算法特训班》77', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', '1421', '899.00', '/course/257/lesson', '2017-10-26 11:37:47', 'open', 'basic', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('258', '《深度学习》第五期88', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', '836', '899.00', '/course/258/lesson', '2017-10-26 11:37:47', 'open', 'basic', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('259', '详解动态规划与隐马尔科夫模型99', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', '1387', '0.00', '/course/259/lesson', '2017-10-26 11:37:47', 'open', 'basic', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('260', '普通程序员如何转型到人工智能领域00', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '1706', '0.00', '/course/260/lesson', '2017-10-26 11:37:47', 'open', 'da', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'XBS老师');
-INSERT INTO `tb_course` VALUES ('261', '《Python数据分析升级版》第三期21', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '300', '899.00', '/course/261/lesson', '2017-10-26 11:37:47', 'systematic', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('262', '《深度学习实训:人脸识别项目》22', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', '3', '3499.00', '/course/262/lesson', '2017-10-26 11:37:48', 'systematic', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
-INSERT INTO `tb_course` VALUES ('263', '零基础Python入门23', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', '4214', '299.00', '/course/263/lesson', '2017-10-26 11:37:48', 'systematic', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('264', '算法与数据结构中的面试与刷题24', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', '608', '0.00', '/course/264/lesson', '2017-10-26 11:37:48', 'systematic', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('265', '深度学习中的序列模型25', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', '539', '0.00', '/course/265/lesson', '2017-10-26 11:37:48', 'systematic', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('266', '《面试算法LeetCode刷题班》26', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', '441', '899.00', '/course/266/lesson', '2017-10-26 11:37:48', 'systematic', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('267', '《BAT面试算法特训班》27', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', '1421', '899.00', '/course/267/lesson', '2017-10-26 11:37:48', 'systematic', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('268', '《深度学习》第五期28', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', '836', '899.00', '/course/268/lesson', '2017-10-26 11:37:48', 'systematic', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('269', '详解动态规划与隐马尔科夫模型29', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', '1387', '0.00', '/course/269/lesson', '2017-10-26 11:37:48', 'systematic', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('270', '普通程序员如何转型到人工智能领域30', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '1706', '0.00', '/course/270/lesson', '2017-10-26 11:37:48', 'systematic', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'XBS老师');
-INSERT INTO `tb_course` VALUES ('271', '《Python数据分析升级版》第三期31', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '300', '899.00', '/course/271/lesson', '2017-10-26 11:37:48', 'systematic', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('272', '《深度学习实训:人脸识别项目32》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', '3', '3499.00', '/course/272/lesson', '2017-10-26 11:37:48', 'systematic', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
-INSERT INTO `tb_course` VALUES ('273', '零基础Python入门33', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', '4214', '299.00', '/course/273/lesson', '2017-10-26 11:37:48', 'systematic', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('274', '算法与数据结构中的面试与刷题34', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', '608', '0.00', '/course/274/lesson', '2017-10-26 11:37:48', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('275', '深度学习中的序列模型35', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', '539', '0.00', '/course/275/lesson', '2017-10-26 11:37:48', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('276', '《面试算法LeetCode刷题班》36', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', '441', '899.00', '/course/276/lesson', '2017-10-26 11:37:48', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('277', '《BAT面试算法特训班》37', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', '1421', '899.00', '/course/277/lesson', '2017-10-26 11:37:48', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('278', '《深度学习》第五期38', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', '836', '899.00', '/course/278/lesson', '2017-10-26 11:37:48', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('279', '详解动态规划与隐马尔科夫模型39', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', '1387', '0.00', '/course/279/lesson', '2017-10-26 11:37:48', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('280', '普通程序员如何转型到人工智能领域40', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '1706', '0.00', '/course/280/lesson', '2017-10-26 11:37:48', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'XBS老师');
-INSERT INTO `tb_course` VALUES ('281', '《Python数据分析升级版》第三期', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '300', '899.00', '/course/281/lesson', '2017-10-26 11:37:48', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('282', '《深度学习实训:人脸识别项目》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', '3', '3499.00', '/course/282/lesson', '2017-10-26 11:37:48', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
-INSERT INTO `tb_course` VALUES ('283', '零基础Python入门', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', '4214', '299.00', '/course/283/lesson', '2017-10-26 11:37:48', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('284', '算法与数据结构中的面试与刷题', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', '608', '0.00', '/course/284/lesson', '2017-10-26 11:37:48', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('285', '深度学习中的序列模型', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', '539', '0.00', '/course/285/lesson', '2017-10-26 11:37:48', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('286', '《面试算法LeetCode刷题班》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', '441', '899.00', '/course/286/lesson', '2017-10-26 11:37:48', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('287', '《BAT面试算法特训班》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', '1421', '899.00', '/course/287/lesson', '2017-10-26 11:37:48', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('288', '《深度学习》第五期', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', '836', '899.00', '/course/288/lesson', '2017-10-26 11:37:48', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('289', '详解动态规划与隐马尔科夫模型', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', '1387', '0.00', '/course/289/lesson', '2017-10-26 11:37:48', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('290', '普通程序员如何转型到人工智能领域', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '1706', '0.00', '/course/290/lesson', '2017-10-26 11:37:49', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'XBS老师');
-INSERT INTO `tb_course` VALUES ('291', '《Python数据分析升级版》第三期11', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '300', '899.00', '/course/291/lesson', '2017-10-26 11:37:49', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('292', '《深度学习实训:人脸识别项目22》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', '3', '3499.00', '/course/292/lesson', '2017-10-26 11:37:49', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
-INSERT INTO `tb_course` VALUES ('293', '零基础Python入门33', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', '4214', '299.00', '/course/293/lesson', '2017-10-26 11:37:49', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('294', '算法与数据结构中的面试与刷题44', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', '608', '0.00', '/course/294/lesson', '2017-10-26 11:37:49', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('295', '深度学习中的序列模型55', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', '539', '0.00', '/course/295/lesson', '2017-10-26 11:37:49', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('296', '《面试算法LeetCode刷题班》66', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', '441', '899.00', '/course/296/lesson', '2017-10-26 11:37:49', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('297', '《BAT面试算法特训班》77', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', '1421', '899.00', '/course/297/lesson', '2017-10-26 11:37:49', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('298', '《深度学习》第五期88', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', '836', '899.00', '/course/298/lesson', '2017-10-26 11:37:49', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('299', '详解动态规划与隐马尔科夫模型99', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', '1387', '0.00', '/course/299/lesson', '2017-10-26 11:37:49', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('300', '普通程序员如何转型到人工智能领域00', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '1706', '0.00', '/course/300/lesson', '2017-10-26 11:37:49', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'XBS老师');
-INSERT INTO `tb_course` VALUES ('301', '《Python数据分析升级版》第三期21', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '300', '899.00', '/course/301/lesson', '2017-10-26 11:37:49', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('302', '《深度学习实训:人脸识别项目》22', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', '3', '3499.00', '/course/302/lesson', '2017-10-26 11:37:49', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
-INSERT INTO `tb_course` VALUES ('303', '零基础Python入门23', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', '4214', '299.00', '/course/303/lesson', '2017-10-26 11:37:49', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('304', '算法与数据结构中的面试与刷题24', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', '608', '0.00', '/course/304/lesson', '2017-10-26 11:37:49', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('305', '深度学习中的序列模型25', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', '539', '0.00', '/course/305/lesson', '2017-10-26 11:37:49', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('306', '《面试算法LeetCode刷题班》26', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', '441', '899.00', '/course/306/lesson', '2017-10-26 11:37:49', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('307', '《BAT面试算法特训班》27', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', '1421', '899.00', '/course/307/lesson', '2017-10-26 11:37:49', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('308', '《深度学习》第五期28', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', '836', '899.00', '/course/308/lesson', '2017-10-26 11:37:49', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('309', '详解动态规划与隐马尔科夫模型29', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', '1387', '0.00', '/course/309/lesson', '2017-10-26 11:37:49', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('310', '普通程序员如何转型到人工智能领域30', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '1706', '0.00', '/course/310/lesson', '2017-10-26 11:37:49', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'XBS老师');
-INSERT INTO `tb_course` VALUES ('311', '《Python数据分析升级版》第三期31', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '300', '899.00', '/course/311/lesson', '2017-10-26 11:37:49', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('312', '《深度学习实训:人脸识别项目32》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', '3', '3499.00', '/course/312/lesson', '2017-10-26 11:37:49', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
-INSERT INTO `tb_course` VALUES ('313', '零基础Python入门33', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', '4214', '299.00', '/course/313/lesson', '2017-10-26 11:37:49', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('314', '算法与数据结构中的面试与刷题34', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', '608', '0.00', '/course/314/lesson', '2017-10-26 11:37:49', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('315', '深度学习中的序列模型35', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', '539', '0.00', '/course/315/lesson', '2017-10-26 11:37:49', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('316', '《面试算法LeetCode刷题班》36', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', '441', '899.00', '/course/316/lesson', '2017-10-26 11:37:49', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('317', '《BAT面试算法特训班》37', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', '1421', '899.00', '/course/317/lesson', '2017-10-26 11:37:49', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('318', '《深度学习》第五期38', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', '836', '899.00', '/course/318/lesson', '2017-10-26 11:37:49', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('319', '详解动态规划与隐马尔科夫模型39', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', '1387', '0.00', '/course/319/lesson', '2017-10-26 11:37:49', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('320', '普通程序员如何转型到人工智能领域40', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '1706', '0.00', '/course/320/lesson', '2017-10-26 11:37:49', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'XBS老师');
-INSERT INTO `tb_course` VALUES ('321', '《Python数据分析升级版》第三期', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '300', '899.00', '/course/321/lesson', '2017-10-26 11:37:50', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('322', '《深度学习实训:人脸识别项目》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', '3', '3499.00', '/course/322/lesson', '2017-10-26 11:37:50', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
-INSERT INTO `tb_course` VALUES ('323', '零基础Python入门', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', '4214', '299.00', '/course/323/lesson', '2017-10-26 11:37:50', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('324', '算法与数据结构中的面试与刷题', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', '608', '0.00', '/course/324/lesson', '2017-10-26 11:37:50', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('325', '深度学习中的序列模型', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', '539', '0.00', '/course/325/lesson', '2017-10-26 11:37:50', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('326', '《面试算法LeetCode刷题班》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', '441', '899.00', '/course/326/lesson', '2017-10-26 11:37:50', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('327', '《BAT面试算法特训班》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', '1421', '899.00', '/course/327/lesson', '2017-10-26 11:37:50', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('328', '《深度学习》第五期', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', '836', '899.00', '/course/328/lesson', '2017-10-26 11:37:50', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('329', '详解动态规划与隐马尔科夫模型', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', '1387', '0.00', '/course/329/lesson', '2017-10-26 11:37:50', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('330', '普通程序员如何转型到人工智能领域', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '1706', '0.00', '/course/330/lesson', '2017-10-26 11:37:50', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'XBS老师');
-INSERT INTO `tb_course` VALUES ('331', '《Python数据分析升级版》第三期11', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '300', '899.00', '/course/331/lesson', '2017-10-26 11:37:50', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('332', '《深度学习实训:人脸识别项目22》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', '3', '3499.00', '/course/332/lesson', '2017-10-26 11:37:50', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
-INSERT INTO `tb_course` VALUES ('333', '零基础Python入门33', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', '4214', '299.00', '/course/333/lesson', '2017-10-26 11:37:50', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('334', '算法与数据结构中的面试与刷题44', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', '608', '0.00', '/course/334/lesson', '2017-10-26 11:37:50', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('335', '深度学习中的序列模型55', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', '539', '0.00', '/course/335/lesson', '2017-10-26 11:37:50', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('336', '《面试算法LeetCode刷题班》66', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', '441', '899.00', '/course/336/lesson', '2017-10-26 11:37:50', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('337', '《BAT面试算法特训班》77', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', '1421', '899.00', '/course/337/lesson', '2017-10-26 11:37:50', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('338', '《深度学习》第五期88', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', '836', '899.00', '/course/338/lesson', '2017-10-26 11:37:50', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('339', '详解动态规划与隐马尔科夫模型99', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', '1387', '0.00', '/course/339/lesson', '2017-10-26 11:37:50', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('340', '普通程序员如何转型到人工智能领域00', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '1706', '0.00', '/course/340/lesson', '2017-10-26 11:37:50', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'XBS老师');
-INSERT INTO `tb_course` VALUES ('341', '《Python数据分析升级版》第三期21', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '300', '899.00', '/course/341/lesson', '2017-10-26 11:37:50', 'open', 'da', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('342', '《深度学习实训:人脸识别项目》22', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', '3', '3499.00', '/course/342/lesson', '2017-10-26 11:37:50', 'open', 'da', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
-INSERT INTO `tb_course` VALUES ('343', '零基础Python入门23', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', '4214', '299.00', '/course/343/lesson', '2017-10-26 11:37:50', 'open', 'da', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('344', '算法与数据结构中的面试与刷题24', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', '608', '0.00', '/course/344/lesson', '2017-10-26 11:37:50', 'open', 'da', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('345', '深度学习中的序列模型25', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', '539', '0.00', '/course/345/lesson', '2017-10-26 11:37:50', 'open', 'da', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('346', '《面试算法LeetCode刷题班》26', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', '441', '899.00', '/course/346/lesson', '2017-10-26 11:37:50', 'open', 'da', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('347', '《BAT面试算法特训班》27', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', '1421', '899.00', '/course/347/lesson', '2017-10-26 11:37:50', 'open', 'da', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('348', '《深度学习》第五期28', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', '836', '899.00', '/course/348/lesson', '2017-10-26 11:37:50', 'open', 'da', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('349', '详解动态规划与隐马尔科夫模型29', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', '1387', '0.00', '/course/349/lesson', '2017-10-26 11:37:51', 'open', 'da', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('350', '普通程序员如何转型到人工智能领域30', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '1706', '0.00', '/course/350/lesson', '2017-10-26 11:37:51', 'open', 'da', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'XBS老师');
-INSERT INTO `tb_course` VALUES ('351', '《Python数据分析升级版》第三期31', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '300', '899.00', '/course/351/lesson', '2017-10-26 11:37:51', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('352', '《深度学习实训:人脸识别项目32》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', '3', '3499.00', '/course/352/lesson', '2017-10-26 11:37:51', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
-INSERT INTO `tb_course` VALUES ('353', '零基础Python入门33', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', '4214', '299.00', '/course/353/lesson', '2017-10-26 11:37:51', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('354', '算法与数据结构中的面试与刷题34', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', '608', '0.00', '/course/354/lesson', '2017-10-26 11:37:51', 'open', 'da', '1', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('355', '深度学习中的序列模型35', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', '539', '0.00', '/course/355/lesson', '2017-10-26 11:37:51', 'bootcamp', 'da', '1', '2017-02-01 21:52:35', '2019-11-27 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('356', '《面试算法LeetCode刷题班》36', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', '441', '899.00', '/course/356/lesson', '2017-10-26 11:37:51', 'bootcamp', 'da', '1', '2017-02-01 21:52:35', '2017-04-25 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('357', '《BAT面试算法特训班》37', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', '1421', '899.00', '/course/357/lesson', '2017-10-26 11:37:51', 'bootcamp', 'da', '1', '2017-02-01 21:52:35', '2019-11-27 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('358', '《深度学习》第五期38', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', '836', '899.00', '/course/358/lesson', '2017-10-26 11:37:51', 'bootcamp', 'da', '1', '2017-02-01 21:52:35', '2017-04-25 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('359', '详解动态规划与隐马尔科夫模型39', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', '1387', '0.00', '/course/359/lesson', '2017-10-26 11:37:51', 'bootcamp', 'da', '1', '2017-02-01 21:52:35', '2019-11-27 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('360', '普通程序员如何转型到人工智能领域40', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '1706', '0.00', '/course/360/lesson', '2017-10-26 11:37:51', 'bootcamp', 'da', '1', '2017-02-01 21:52:35', '2017-04-25 21:52:53', 'XBS老师');
-INSERT INTO `tb_course` VALUES ('361', '《Python数据分析升级版》第三期', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '300', '899.00', '/course/361/lesson', '2017-10-26 11:37:51', 'bootcamp', 'da', '1', '2017-02-01 21:52:35', '2019-11-27 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('362', '《深度学习实训:人脸识别项目》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', '3', '3499.00', '/course/362/lesson', '2017-10-26 11:37:51', 'bootcamp', 'da', '1', '2017-02-01 21:52:35', '2017-04-25 21:52:53', 'chinadu');
-INSERT INTO `tb_course` VALUES ('363', '零基础Python入门', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', '4214', '299.00', '/course/363/lesson', '2017-10-26 11:37:51', 'bootcamp', 'da', '1', '2017-02-01 21:52:35', '2019-11-27 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('364', '算法与数据结构中的面试与刷题', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', '608', '0.00', '/course/364/lesson', '2017-10-26 11:37:51', 'bootcamp', 'da', '1', '2017-02-01 21:52:35', '2017-04-25 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('365', '深度学习中的序列模型', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', '539', '0.00', '/course/365/lesson', '2017-10-26 11:37:51', 'bootcamp', 'da', '1', '2017-02-01 21:52:35', '2019-11-27 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('366', '《面试算法LeetCode刷题班》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', '441', '899.00', '/course/366/lesson', '2017-10-26 11:37:51', 'bootcamp', 'da', '1', '2017-02-01 21:52:35', '2017-04-25 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('367', '《BAT面试算法特训班》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', '1421', '899.00', '/course/367/lesson', '2017-10-26 11:37:51', 'bootcamp', 'da', '1', '2017-02-01 21:52:35', '2019-11-27 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('368', '《深度学习》第五期', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', '836', '899.00', '/course/368/lesson', '2017-10-26 11:37:51', 'bootcamp', 'da', '1', '2017-02-01 21:52:35', '2017-04-25 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('369', '详解动态规划与隐马尔科夫模型', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', '1387', '0.00', '/course/369/lesson', '2017-10-26 11:37:51', 'bootcamp', 'da', '1', '2017-02-01 21:52:35', '2019-11-27 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('370', '普通程序员如何转型到人工智能领域', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '1706', '0.00', '/course/370/lesson', '2017-10-26 11:37:51', 'bootcamp', 'da', '1', '2017-02-01 21:52:35', '2019-11-27 21:52:53', 'XBS老师');
-INSERT INTO `tb_course` VALUES ('371', '《Python数据分析升级版》第三期11', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '300', '899.00', '/course/371/lesson', '2017-10-26 11:37:51', 'bootcamp', 'da', '1', '2017-02-01 21:52:35', '2019-11-27 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('372', '《深度学习实训:人脸识别项目22》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', '3', '3499.00', '/course/372/lesson', '2017-10-26 11:37:51', 'bootcamp', 'da', '1', '2017-02-01 21:52:35', '2017-04-25 21:52:53', 'chinadu');
-INSERT INTO `tb_course` VALUES ('373', '零基础Python入门33', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', '4214', '299.00', '/course/373/lesson', '2017-10-26 11:37:51', 'bootcamp', 'da', '1', '2017-02-01 21:52:35', '2019-11-27 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('374', '算法与数据结构中的面试与刷题44', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', '608', '0.00', '/course/374/lesson', '2017-10-26 11:37:51', 'bootcamp', 'da', '1', '2017-02-01 21:52:35', '2017-04-25 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('375', '深度学习中的序列模型55', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', '539', '0.00', '/course/375/lesson', '2017-10-26 11:37:51', 'bootcamp', 'da', '1', '2017-02-01 21:52:35', '2019-11-27 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('376', '《面试算法LeetCode刷题班》66', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', '441', '899.00', '/course/376/lesson', '2017-10-26 11:37:51', 'bootcamp', 'da', '1', '2017-02-01 21:52:35', '2017-04-25 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('377', '《BAT面试算法特训班》77', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', '1421', '899.00', '/course/377/lesson', '2017-10-26 11:37:51', 'bootcamp', 'da', '1', '2017-02-01 21:52:35', '2017-04-25 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('378', '《深度学习》第五期88', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', '836', '899.00', '/course/378/lesson', '2017-10-26 11:37:52', 'bootcamp', 'da', '1', '2017-02-01 21:52:35', '2019-11-27 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('379', '详解动态规划与隐马尔科夫模型99', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', '1387', '0.00', '/course/379/lesson', '2017-10-26 11:37:52', 'bootcamp', 'da', '1', '2017-02-01 21:52:35', '2017-04-25 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('380', '普通程序员如何转型到人工智能领域00', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '1706', '0.00', '/course/380/lesson', '2017-10-26 11:37:52', 'bootcamp', 'da', '1', '2017-02-01 21:52:35', '2019-11-27 21:52:53', 'XBS老师');
-INSERT INTO `tb_course` VALUES ('381', '《Python数据分析升级版》第三期21', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '300', '899.00', '/course/381/lesson', '2017-10-26 11:37:52', 'bootcamp', 'da', '1', '2017-02-01 21:52:35', '2019-11-27 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('382', '《深度学习实训:人脸识别项目》22', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', '3', '3499.00', '/course/382/lesson', '2017-10-26 11:37:52', 'bootcamp', 'da', '2', '2017-02-01 21:52:35', '2017-04-25 21:52:53', 'chinadu');
-INSERT INTO `tb_course` VALUES ('383', '零基础Python入门23', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', '4214', '299.00', '/course/383/lesson', '2017-10-26 11:37:52', 'bootcamp', 'da', '2', '2017-02-01 21:52:35', '2019-11-27 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('384', '算法与数据结构中的面试与刷题24', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', '608', '0.00', '/course/384/lesson', '2017-10-26 11:37:52', 'bootcamp', 'da', '2', '2017-02-01 21:52:35', '2019-11-27 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('385', '深度学习中的序列模型25', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', '539', '0.00', '/course/385/lesson', '2017-10-26 11:37:52', 'bootcamp', 'da', '2', '2017-02-01 21:52:35', '2017-04-25 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('386', '《面试算法LeetCode刷题班》26', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', '441', '899.00', '/course/386/lesson', '2017-10-26 11:37:52', 'bootcamp', 'da', '2', '2017-02-01 21:52:35', '2017-04-25 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('387', '《BAT面试算法特训班》27', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', '1421', '899.00', '/course/387/lesson', '2017-10-26 11:37:52', 'bootcamp', 'da', '2', '2017-02-01 21:52:35', '2017-04-25 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('388', '《深度学习》第五期28', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', '836', '899.00', '/course/388/lesson', '2017-10-26 11:37:52', 'bootcamp', 'da', '2', '2017-02-01 21:52:35', '2020-07-30 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('389', '详解动态规划与隐马尔科夫模型29', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', '1387', '0.00', '/course/389/lesson', '2017-10-26 11:37:52', 'bootcamp', 'da', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('390', '普通程序员如何转型到人工智能领域30', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '1706', '0.00', '/course/390/lesson', '2017-10-26 11:37:52', 'bootcamp', 'da', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'XBS老师');
-INSERT INTO `tb_course` VALUES ('391', '《Python数据分析升级版》第三期31', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '300', '899.00', '/course/391/lesson', '2017-10-26 11:37:52', 'bootcamp', 'da', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('392', '《深度学习实训:人脸识别项目32》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', '3', '3499.00', '/course/392/lesson', '2017-10-26 11:37:52', 'bootcamp', 'da', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
-INSERT INTO `tb_course` VALUES ('393', '零基础Python入门33', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', '4214', '299.00', '/course/393/lesson', '2017-10-26 11:37:52', 'bootcamp', 'da', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
-INSERT INTO `tb_course` VALUES ('394', '算法与数据结构中的面试与刷题34', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', '608', '0.00', '/course/394/lesson', '2017-10-26 11:37:52', 'bootcamp', 'da', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('395', '深度学习中的序列模型35', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', '539', '0.00', '/course/395/lesson', '2017-10-26 11:37:52', 'bootcamp', 'da', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('396', '《面试算法LeetCode刷题班》36', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', '441', '899.00', '/course/396/lesson', '2017-10-26 11:37:52', 'bootcamp', 'da', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
-INSERT INTO `tb_course` VALUES ('397', '《BAT面试算法特训班》37', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', '1421', '899.00', '/course/397/lesson', '2017-10-26 11:37:52', 'bootcamp', 'da', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('398', '《深度学习》第五期38', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', '836', '899.00', '/course/398/lesson', '2017-10-26 11:37:52', 'bootcamp', 'da', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
-INSERT INTO `tb_course` VALUES ('399', '详解动态规划与隐马尔科夫模型39', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', '1387', '0.00', '/course/399/lesson', '2017-10-26 11:37:52', 'bootcamp', 'da', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
-INSERT INTO `tb_course` VALUES ('400', '普通程序员如何转型到人工智能领域40', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', '1706', '0.00', '/course/400/lesson', '2017-10-26 11:37:52', 'bootcamp', 'da', '2', '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'XBS老师');
+BEGIN;
+INSERT INTO `tb_course` VALUES (1, '《Python数据分析升级版》第三期', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 300, 0.00, '/course/1/lesson', '2017-11-11 17:18:56', 'systematic', 'bigdata', NULL, 1, '2017-02-01 21:52:35', '2020-07-30 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (2, '《深度学习实训:人脸识别项目》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', 3, 3499.00, '/course/2/lesson', '2017-10-30 14:48:53', 'open', 'bigdata', NULL, 2, '2017-06-06 21:53:00', '2017-06-13 21:53:07', 'chinadu');
+INSERT INTO `tb_course` VALUES (3, '零基础Python入门', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', 4214, 299.00, '/course/3/lesson', '2017-10-30 14:48:55', 'open', 'bigdata', NULL, 3, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (4, '算法与数据结构中的面试与刷题', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', 608, 0.00, '/course/4/lesson', '2017-10-30 14:48:56', 'open', 'bigdata', NULL, 4, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (5, '深度学习中的序列模型', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', 539, 0.00, '/course/5/lesson', '2017-10-30 14:48:58', 'open', 'bigdata', NULL, 5, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (6, '《面试算法LeetCode刷题班》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', 441, 899.00, '/course/6/lesson', '2017-10-30 14:48:59', 'open', 'bigdata', NULL, 6, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (7, '《BAT面试算法特训班》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', 1421, 899.00, '/course/7/lesson', '2017-10-30 14:49:00', 'open', 'bigdata', NULL, 7, '2017-02-01 21:52:35', '2020-07-30 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (8, '《深度学习》第五期', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', 836, 899.00, '/course/8/lesson', '2017-10-30 14:49:01', 'open', 'bigdata', NULL, 8, '2017-02-01 21:52:35', '2020-07-30 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (9, '详解动态规划与隐马尔科夫模型', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', 1387, 0.00, '/course/9/lesson', '2017-10-30 14:49:03', 'open', 'bigdata', NULL, 9, '2017-02-01 21:52:35', '2020-07-30 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (10, '普通程序员如何转型到人工智能领域', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 1706, 0.00, '/course/10/lesson', '2017-10-30 14:49:07', 'open', 'bigdata', NULL, 10, '2017-02-01 21:52:35', '2020-07-30 21:52:53', '小象老师');
+INSERT INTO `tb_course` VALUES (11, '《Python数据分析升级版》第三期11', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 300, 899.00, '/course/11/lesson', '2017-10-30 14:49:29', 'open', 'bigdata', NULL, 1, '2017-02-01 21:52:35', '2020-07-30 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (12, '《深度学习实训:人脸识别项目22》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', 3, 3499.00, '/course/12/lesson', '2017-10-30 14:49:52', 'open', 'bigdata', NULL, 2, '2017-02-01 21:52:35', '2020-07-30 21:52:53', 'chinadu');
+INSERT INTO `tb_course` VALUES (13, '零基础Python入门33', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', 4214, 299.00, '/course/13/lesson', '2017-10-30 14:49:30', 'open', 'bigdata', NULL, 2, '2017-02-01 21:52:35', '2020-07-30 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (14, '算法与数据结构中的面试与刷题44', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', 608, 0.00, '/course/14/lesson', '2017-10-30 14:49:31', 'open', 'bigdata', NULL, 3, '2017-02-01 21:52:35', '2020-07-30 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (15, '深度学习中的序列模型55', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', 539, 0.00, '/course/15/lesson', '2017-10-30 14:49:33', 'open', 'bigdata', NULL, 4, '2017-02-01 21:52:35', '2020-07-30 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (16, '《面试算法LeetCode刷题班》66', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', 441, 899.00, '/course/16/lesson', '2017-10-30 14:49:35', 'open', 'bigdata', NULL, 5, '2017-02-01 21:52:35', '2020-07-30 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (17, '《BAT面试算法特训班》77', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', 1421, 899.00, '/course/17/lesson', '2017-10-30 14:49:37', 'open', 'bigdata', NULL, 6, '2017-02-01 21:52:35', '2020-07-30 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (18, '《深度学习》第五期88', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', 836, 899.00, '/course/18/lesson', '2017-10-30 14:49:38', 'open', 'bigdata', NULL, 7, '2017-02-01 21:52:35', '2020-07-30 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (19, '详解动态规划与隐马尔科夫模型99', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', 1387, 0.00, '/course/19/lesson', '2017-10-30 14:49:40', 'systematic', 'bigdata', NULL, 8, '2017-02-01 21:52:35', '2020-07-30 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (20, '普通程序员如何转型到人工智能领域00', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 1706, 0.00, '/course/20/lesson', '2017-10-30 14:49:41', 'systematic', 'bigdata', NULL, 9, '2017-02-01 21:52:35', '2020-07-30 21:52:53', '小象老师');
+INSERT INTO `tb_course` VALUES (21, '《Python数据分析升级版》第三期21', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 300, 899.00, '/course/21/lesson', '2017-10-30 14:50:22', 'systematic', 'bigdata', NULL, 1, '2017-02-01 21:52:35', '2020-07-30 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (22, '《深度学习实训:人脸识别项目》22', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', 3, 3499.00, '/course/22/lesson', '2017-10-26 11:37:39', 'systematic', 'bigdata', NULL, 2, '2017-02-01 21:52:35', '2020-07-30 21:52:53', 'chinadu');
+INSERT INTO `tb_course` VALUES (23, '零基础Python入门23', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', 4214, 299.00, '/course/23/lesson', '2017-10-30 14:50:22', 'systematic', 'bigdata', NULL, 3, '2017-02-01 21:52:35', '2020-07-30 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (24, '算法与数据结构中的面试与刷题24', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', 608, 0.00, '/course/24/lesson', '2017-10-30 14:50:22', 'systematic', 'bigdata', NULL, 4, '2017-02-01 21:52:35', '2020-07-30 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (25, '深度学习中的序列模型25', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', 539, 0.00, '/course/25/lesson', '2017-10-30 14:50:22', 'systematic', 'bigdata', NULL, 5, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (26, '《面试算法LeetCode刷题班》26', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', 441, 899.00, '/course/26/lesson', '2017-10-30 14:50:22', 'systematic', 'bigdata', NULL, 6, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (27, '《BAT面试算法特训班》27', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', 1421, 899.00, '/course/27/lesson', '2017-10-30 14:50:22', 'systematic', 'bigdata', NULL, 7, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (28, '《深度学习》第五期28', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', 836, 899.00, '/course/28/lesson', '2017-10-30 14:50:22', 'systematic', 'bigdata', NULL, 8, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (29, '详解动态规划与隐马尔科夫模型29', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', 1387, 0.00, '/course/29/lesson', '2017-10-30 14:50:22', 'systematic', 'bigdata', NULL, 9, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (30, '普通程序员如何转型到人工智能领域30', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 1706, 0.00, '/course/30/lesson', '2017-10-30 14:50:22', 'systematic', 'bigdata', NULL, 10, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '小象老师');
+INSERT INTO `tb_course` VALUES (31, '《Python数据分析升级版》第三期31', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 300, 899.00, '/course/31/lesson', '2017-10-26 11:37:39', 'systematic', 'bigdata', NULL, 1, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (32, '《深度学习实训:人脸识别项目32》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', 3, 3499.00, '/course/32/lesson', '2017-10-30 14:50:30', 'systematic', 'bigdata', NULL, 2, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
+INSERT INTO `tb_course` VALUES (33, '零基础Python入门33', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', 4214, 299.00, '/course/33/lesson', '2017-10-30 14:50:30', 'systematic', 'bigdata', NULL, 3, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (34, '算法与数据结构中的面试与刷题34', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', 608, 0.00, '/course/34/lesson', '2017-10-30 14:50:30', 'systematic', 'bigdata', NULL, 4, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (35, '深度学习中的序列模型35', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', 539, 0.00, '/course/35/lesson', '2017-10-30 14:50:30', 'systematic', 'bigdata', NULL, 5, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (36, '《面试算法LeetCode刷题班》36', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', 441, 899.00, '/course/36/lesson', '2017-10-30 14:50:30', 'systematic', 'bigdata', NULL, 6, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (37, '《BAT面试算法特训班》37', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', 1421, 899.00, '/course/37/lesson', '2017-10-30 14:50:30', 'systematic', 'bigdata', NULL, 7, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (38, '《深度学习》第五期38', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', 836, 899.00, '/course/38/lesson', '2017-10-30 14:50:30', 'systematic', 'bigdata', NULL, 8, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (39, '详解动态规划与隐马尔科夫模型39', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', 1387, 0.00, '/course/39/lesson', '2017-10-30 14:50:30', 'systematic', 'bigdata', NULL, 9, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (40, '普通程序员如何转型到人工智能领域40', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 1706, 0.00, '/course/40/lesson', '2017-10-30 14:50:30', 'bootcamp', 'bigdata', NULL, 10, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '小象老师');
+INSERT INTO `tb_course` VALUES (41, '《Python数据分析升级版》第三期', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 300, 899.00, '/course/41/lesson', '2017-10-26 11:37:39', 'bootcamp', 'bigdata', NULL, 1, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (42, '《深度学习实训:人脸识别项目》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', 3, 3499.00, '/course/42/lesson', '2017-10-30 14:50:35', 'bootcamp', 'bigdata', NULL, 2, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
+INSERT INTO `tb_course` VALUES (43, '零基础Python入门', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', 4214, 299.00, '/course/43/lesson', '2017-10-30 14:50:35', 'bootcamp', 'bigdata', NULL, 3, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (44, '算法与数据结构中的面试与刷题', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', 608, 0.00, '/course/44/lesson', '2017-10-30 14:50:35', 'bootcamp', 'bigdata', NULL, 4, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (45, '深度学习中的序列模型', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', 539, 0.00, '/course/45/lesson', '2017-10-30 14:50:35', 'bootcamp', 'bigdata', NULL, 5, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (46, '《面试算法LeetCode刷题班》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', 441, 899.00, '/course/46/lesson', '2017-10-30 14:50:35', 'bootcamp', 'bigdata', NULL, 6, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (47, '《BAT面试算法特训班》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', 1421, 899.00, '/course/47/lesson', '2017-10-30 14:50:35', 'bootcamp', 'bigdata', NULL, 7, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (48, '《深度学习》第五期', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', 836, 899.00, '/course/48/lesson', '2017-10-30 14:50:35', 'bootcamp', 'bigdata', NULL, 8, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (49, '详解动态规划与隐马尔科夫模型', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', 1387, 0.00, '/course/49/lesson', '2017-10-30 14:50:35', 'bootcamp', 'bigdata', NULL, 9, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (50, '普通程序员如何转型到人工智能领域', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 1706, 0.00, '/course/50/lesson', '2017-10-30 14:50:35', 'bootcamp', 'bigdata', NULL, 10, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '小象老师');
+INSERT INTO `tb_course` VALUES (51, '《Python数据分析升级版》第三期11', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 300, 899.00, '/course/51/lesson', '2017-10-26 11:37:40', 'bootcamp', 'bigdata', NULL, 1, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (52, '《深度学习实训:人脸识别项目22》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', 3, 3499.00, '/course/52/lesson', '2017-10-30 14:51:09', 'bootcamp', 'ai', NULL, 2, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
+INSERT INTO `tb_course` VALUES (53, '零基础Python入门33', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', 4214, 299.00, '/course/53/lesson', '2017-10-30 14:51:09', 'bootcamp', 'ai', NULL, 2, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (54, '算法与数据结构中的面试与刷题44', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', 608, 0.00, '/course/54/lesson', '2017-10-30 14:51:09', 'bootcamp', 'ai', NULL, 3, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (55, '深度学习中的序列模型55', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', 539, 0.00, '/course/55/lesson', '2017-10-30 14:51:09', 'bootcamp', 'ai', NULL, 4, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (56, '《面试算法LeetCode刷题班》66', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', 441, 899.00, '/course/56/lesson', '2017-10-30 14:51:09', 'bootcamp', 'ai', NULL, 5, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (57, '《BAT面试算法特训班》77', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', 1421, 899.00, '/course/57/lesson', '2017-10-30 14:51:09', 'bootcamp', 'ai', NULL, 6, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (58, '《深度学习》第五期88', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', 836, 899.00, '/course/58/lesson', '2017-10-30 14:51:09', 'bootcamp', 'ai', NULL, 7, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (59, '详解动态规划与隐马尔科夫模型99', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', 1387, 0.00, '/course/59/lesson', '2017-10-30 14:51:09', 'bootcamp', 'ai', NULL, 8, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (60, '普通程序员如何转型到人工智能领域00', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 1706, 0.00, '/course/60/lesson', '2017-10-30 14:51:09', 'bootcamp', 'ai', NULL, 9, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '小象老师');
+INSERT INTO `tb_course` VALUES (61, '《Python数据分析升级版》第三期21', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 300, 899.00, '/course/61/lesson', '2017-10-26 11:37:40', 'systematic', 'ai', NULL, 1, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (62, '《深度学习实训:人脸识别项目》22', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', 3, 3499.00, '/course/62/lesson', '2017-10-30 14:51:09', 'systematic', 'ai', NULL, 2, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
+INSERT INTO `tb_course` VALUES (63, '零基础Python入门23', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', 4214, 299.00, '/course/63/lesson', '2017-10-30 14:51:09', 'systematic', 'ai', NULL, 3, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (64, '算法与数据结构中的面试与刷题24', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', 608, 0.00, '/course/64/lesson', '2017-10-30 14:51:09', 'systematic', 'ai', NULL, 4, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (65, '深度学习中的序列模型25', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', 539, 0.00, '/course/65/lesson', '2017-10-30 14:51:09', 'systematic', 'ai', NULL, 5, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (66, '《面试算法LeetCode刷题班》26', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', 441, 899.00, '/course/66/lesson', '2017-10-30 14:51:09', 'systematic', 'ai', NULL, 6, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (67, '《BAT面试算法特训班》27', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', 1421, 899.00, '/course/67/lesson', '2017-10-30 14:51:09', 'systematic', 'ai', NULL, 7, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (68, '《深度学习》第五期28', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', 836, 899.00, '/course/68/lesson', '2017-10-30 14:51:09', 'systematic', 'ai', NULL, 8, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (69, '详解动态规划与隐马尔科夫模型29', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', 1387, 0.00, '/course/69/lesson', '2017-10-30 14:51:09', 'systematic', 'ai', NULL, 9, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (70, '普通程序员如何转型到人工智能领域30', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 1706, 0.00, '/course/70/lesson', '2017-10-30 14:51:09', 'systematic', 'ai', NULL, 10, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '小象老师');
+INSERT INTO `tb_course` VALUES (71, '《Python数据分析升级版》第三期31', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 300, 899.00, '/course/71/lesson', '2017-10-30 14:51:09', 'systematic', 'ai', NULL, 1, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (72, '《深度学习实训:人脸识别项目32》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', 3, 3499.00, '/course/72/lesson', '2017-10-26 11:37:41', 'systematic', 'ai', NULL, 2, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
+INSERT INTO `tb_course` VALUES (73, '零基础Python入门33', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', 4214, 299.00, '/course/73/lesson', '2017-10-30 14:51:09', 'systematic', 'ai', NULL, 3, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (74, '算法与数据结构中的面试与刷题34', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', 608, 0.00, '/course/74/lesson', '2017-10-30 14:51:10', 'systematic', 'ai', NULL, 4, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (75, '深度学习中的序列模型35', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', 539, 0.00, '/course/75/lesson', '2017-10-30 14:51:10', 'systematic', 'ai', NULL, 5, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (76, '《面试算法LeetCode刷题班》36', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', 441, 899.00, '/course/76/lesson', '2017-10-30 14:51:10', 'systematic', 'ai', NULL, 6, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (77, '《BAT面试算法特训班》37', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', 1421, 899.00, '/course/77/lesson', '2017-10-30 14:51:10', 'systematic', 'ai', NULL, 7, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (78, '《深度学习》第五期38', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', 836, 899.00, '/course/78/lesson', '2017-10-30 14:51:10', 'systematic', 'ai', NULL, 8, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (79, '详解动态规划与隐马尔科夫模型39', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', 1387, 0.00, '/course/79/lesson', '2017-10-30 14:51:10', 'systematic', 'ai', NULL, 9, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (80, '普通程序员如何转型到人工智能领域40', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 1706, 0.00, '/course/80/lesson', '2017-10-30 14:51:10', 'systematic', 'ai', NULL, 10, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '小象老师');
+INSERT INTO `tb_course` VALUES (81, '《Python数据分析升级版》第三期', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 300, 899.00, '/course/81/lesson', '2017-10-26 11:37:41', 'systematic', 'ai', NULL, 1, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (82, '《深度学习实训:人脸识别项目》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', 3, 3499.00, '/course/82/lesson', '2017-10-30 14:51:10', 'systematic', 'ai', NULL, 2, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
+INSERT INTO `tb_course` VALUES (83, '零基础Python入门', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', 4214, 299.00, '/course/83/lesson', '2017-10-30 14:51:10', 'systematic', 'ai', NULL, 3, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (84, '算法与数据结构中的面试与刷题', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', 608, 0.00, '/course/84/lesson', '2017-10-30 14:51:10', 'systematic', 'ai', NULL, 4, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (85, '深度学习中的序列模型', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', 539, 0.00, '/course/85/lesson', '2017-10-30 14:51:10', 'systematic', 'ai', NULL, 5, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (86, '《面试算法LeetCode刷题班》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', 441, 899.00, '/course/86/lesson', '2017-10-30 14:51:10', 'systematic', 'ai', NULL, 6, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (87, '《BAT面试算法特训班》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', 1421, 899.00, '/course/87/lesson', '2017-10-30 14:51:10', 'systematic', 'ai', NULL, 7, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (88, '《深度学习》第五期', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', 836, 899.00, '/course/88/lesson', '2017-10-30 14:51:10', 'systematic', 'ai', NULL, 8, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (89, '详解动态规划与隐马尔科夫模型', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', 1387, 0.00, '/course/89/lesson', '2017-10-30 14:51:10', 'systematic', 'ai', NULL, 9, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (90, '普通程序员如何转型到人工智能领域', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 1706, 0.00, '/course/90/lesson', '2017-10-30 14:51:10', 'systematic', 'ai', NULL, 10, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '小象老师');
+INSERT INTO `tb_course` VALUES (91, '《Python数据分析升级版》第三期11', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 300, 899.00, '/course/91/lesson', '2017-10-26 11:37:42', 'systematic', 'ai', NULL, 1, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (92, '《深度学习实训:人脸识别项目22》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', 3, 3499.00, '/course/92/lesson', '2017-10-26 11:37:42', 'systematic', 'ai', NULL, 1, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
+INSERT INTO `tb_course` VALUES (93, '零基础Python入门33', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', 4214, 299.00, '/course/93/lesson', '2017-10-26 11:37:42', 'systematic', 'ai', NULL, 1, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (94, '算法与数据结构中的面试与刷题44', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', 608, 0.00, '/course/94/lesson', '2017-10-26 11:37:42', 'systematic', 'ai', NULL, 1, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (95, '深度学习中的序列模型55', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', 539, 0.00, '/course/95/lesson', '2017-10-26 11:37:42', 'systematic', 'ai', NULL, 1, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (96, '《面试算法LeetCode刷题班》66', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', 441, 899.00, '/course/96/lesson', '2017-10-26 11:37:42', 'systematic', 'ai', NULL, 1, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (97, '《BAT面试算法特训班》77', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', 1421, 899.00, '/course/97/lesson', '2017-10-26 11:37:42', 'systematic', 'ai', NULL, 1, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (98, '《深度学习》第五期88', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', 836, 899.00, '/course/98/lesson', '2017-10-26 11:37:42', 'systematic', 'ai', NULL, 1, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (99, '详解动态规划与隐马尔科夫模型99', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', 1387, 0.00, '/course/99/lesson', '2017-10-26 11:37:42', 'systematic', 'ai', NULL, 1, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (100, '普通程序员如何转型到人工智能领域00', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 1706, 0.00, '/course/100/lesson', '2017-10-26 11:37:42', 'systematic', 'ai', NULL, 1, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '小象老师');
+INSERT INTO `tb_course` VALUES (101, '《Python数据分析升级版》第三期21', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 300, 899.00, '/course/101/lesson', '2017-10-30 14:51:39', 'systematic', 'ai', NULL, 4, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (102, '《深度学习实训:人脸识别项目》22', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', 3, 3499.00, '/course/102/lesson', '2017-10-30 14:51:39', 'systematic', 'ai', NULL, 5, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
+INSERT INTO `tb_course` VALUES (103, '零基础Python入门23', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', 4214, 299.00, '/course/103/lesson', '2017-10-30 14:51:39', 'systematic', 'ai', NULL, 6, '2017-02-01 21:52:35', '2020-07-30 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (104, '算法与数据结构中的面试与刷题24', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', 608, 0.00, '/course/104/lesson', '2017-10-30 14:51:39', 'systematic', 'ai', NULL, 7, '2017-02-01 21:52:35', '2020-07-30 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (105, '深度学习中的序列模型25', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', 539, 0.00, '/course/105/lesson', '2017-10-30 14:51:39', 'systematic', 'ai', NULL, 8, '2017-02-01 21:52:35', '2020-07-30 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (106, '《面试算法LeetCode刷题班》26', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', 441, 899.00, '/course/106/lesson', '2017-10-30 14:51:39', 'systematic', 'ai', NULL, 9, '2017-02-01 21:52:35', '2020-07-30 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (107, '《BAT面试算法特训班》27', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', 1421, 899.00, '/course/107/lesson', '2017-10-30 14:51:39', 'systematic', 'ai', NULL, 10, '2017-02-01 21:52:35', '2020-07-30 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (108, '《深度学习》第五期28', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', 836, 899.00, '/course/108/lesson', '2017-10-26 11:37:42', 'systematic', 'ai', NULL, 1, '2017-02-01 21:52:35', '2020-07-30 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (109, '详解动态规划与隐马尔科夫模型29', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', 1387, 0.00, '/course/109/lesson', '2017-10-30 14:51:39', 'systematic', 'ai', NULL, 2, '2017-02-01 21:52:35', '2020-07-30 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (110, '普通程序员如何转型到人工智能领域30', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 1706, 0.00, '/course/110/lesson', '2017-10-30 14:51:39', 'systematic', 'ai', NULL, 3, '2017-02-01 21:52:35', '2020-07-30 21:52:53', '小象老师');
+INSERT INTO `tb_course` VALUES (111, '《Python数据分析升级版》第三期31', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 300, 899.00, '/course/111/lesson', '2017-10-30 14:51:39', 'systematic', 'ai', NULL, 4, '2017-02-01 21:52:35', '2020-07-30 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (112, '《深度学习实训:人脸识别项目32》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', 3, 3499.00, '/course/112/lesson', '2017-10-30 14:51:39', 'systematic', 'ai', NULL, 5, '2017-02-01 21:52:35', '2020-07-30 21:52:53', 'chinadu');
+INSERT INTO `tb_course` VALUES (113, '零基础Python入门33', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', 4214, 299.00, '/course/113/lesson', '2017-10-30 14:51:40', 'systematic', 'ai', NULL, 6, '2017-02-01 21:52:35', '2020-07-30 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (114, '算法与数据结构中的面试与刷题34', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', 608, 0.00, '/course/114/lesson', '2017-10-30 14:51:40', 'systematic', 'ai', NULL, 7, '2017-02-01 21:52:35', '2020-07-30 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (115, '深度学习中的序列模型35', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', 539, 0.00, '/course/115/lesson', '2017-10-30 14:51:40', 'systematic', 'ai', NULL, 8, '2017-02-01 21:52:35', '2020-07-30 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (116, '《面试算法LeetCode刷题班》36', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', 441, 899.00, '/course/116/lesson', '2017-10-30 14:51:40', 'systematic', 'ai', NULL, 9, '2017-02-01 21:52:35', '2020-07-30 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (117, '《BAT面试算法特训班》37', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', 1421, 899.00, '/course/117/lesson', '2017-10-30 14:51:40', 'systematic', 'ai', NULL, 10, '2017-02-01 21:52:35', '2020-07-30 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (118, '《深度学习》第五期38', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', 836, 899.00, '/course/118/lesson', '2017-10-26 11:37:43', 'systematic', 'ai', NULL, 1, '2017-02-01 21:52:35', '2020-07-30 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (119, '详解动态规划与隐马尔科夫模型39', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', 1387, 0.00, '/course/119/lesson', '2017-10-30 14:51:40', 'systematic', 'ai', NULL, 2, '2017-02-01 21:52:35', '2020-07-30 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (120, '普通程序员如何转型到人工智能领域40', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 1706, 0.00, '/course/120/lesson', '2017-10-30 14:51:40', 'systematic', 'ai', NULL, 3, '2017-02-01 21:52:35', '2020-07-30 21:52:53', '小象老师');
+INSERT INTO `tb_course` VALUES (121, '《Python数据分析升级版》第三期', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 300, 899.00, '/course/121/lesson', '2017-10-30 14:51:40', 'open', 'ai', NULL, 4, '2017-02-01 21:52:35', '2020-07-30 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (122, '《深度学习实训:人脸识别项目》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', 3, 3499.00, '/course/122/lesson', '2017-10-30 14:51:40', 'open', 'ai', NULL, 5, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
+INSERT INTO `tb_course` VALUES (123, '零基础Python入门', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', 4214, 299.00, '/course/123/lesson', '2017-10-30 14:51:40', 'open', 'ai', NULL, 6, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (124, '算法与数据结构中的面试与刷题', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', 608, 0.00, '/course/124/lesson', '2017-10-30 14:51:40', 'open', 'ai', NULL, 7, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (125, '深度学习中的序列模型', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', 539, 0.00, '/course/125/lesson', '2017-10-30 14:51:40', 'open', 'basic', NULL, 8, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (126, '《面试算法LeetCode刷题班》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', 441, 899.00, '/course/126/lesson', '2017-10-30 14:51:40', 'bootcamp', 'basic', NULL, 9, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (127, '《BAT面试算法特训班》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', 1421, 899.00, '/course/127/lesson', '2017-10-30 14:51:40', 'open', 'basic', NULL, 10, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (128, '《深度学习》第五期', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', 836, 899.00, '/course/128/lesson', '2017-10-26 11:37:43', 'open', 'basic', NULL, 1, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (129, '详解动态规划与隐马尔科夫模型', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', 1387, 0.00, '/course/129/lesson', '2017-10-30 14:51:40', 'open', 'basic', NULL, 2, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (130, '普通程序员如何转型到人工智能领域', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 1706, 0.00, '/course/130/lesson', '2017-10-30 14:51:40', 'open', 'basic', NULL, 2, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '小象老师');
+INSERT INTO `tb_course` VALUES (131, '《Python数据分析升级版》第三期11', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 300, 899.00, '/course/131/lesson', '2017-10-30 14:51:40', 'open', 'basic', NULL, 3, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (132, '《深度学习实训:人脸识别项目22》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', 3, 3499.00, '/course/132/lesson', '2017-10-30 14:51:40', 'open', 'basic', NULL, 4, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
+INSERT INTO `tb_course` VALUES (133, '零基础Python入门33', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', 4214, 299.00, '/course/133/lesson', '2017-10-30 14:51:40', 'open', 'basic', NULL, 5, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (134, '算法与数据结构中的面试与刷题44', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', 608, 0.00, '/course/134/lesson', '2017-10-30 14:51:40', 'systematic', 'basic', NULL, 6, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (135, '深度学习中的序列模型55', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', 539, 0.00, '/course/135/lesson', '2017-10-30 14:51:40', 'systematic', 'basic', NULL, 7, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (136, '《面试算法LeetCode刷题班》66', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', 441, 899.00, '/course/136/lesson', '2017-10-30 14:51:40', 'systematic', 'basic', NULL, 8, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (137, '《BAT面试算法特训班》77', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', 1421, 899.00, '/course/137/lesson', '2017-10-30 14:51:40', 'systematic', 'basic', NULL, 9, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (138, '《深度学习》第五期88', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', 836, 899.00, '/course/138/lesson', '2017-10-30 14:51:40', 'systematic', 'basic', NULL, 1, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (139, '详解动态规划与隐马尔科夫模型99', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', 1387, 0.00, '/course/139/lesson', '2017-10-26 11:37:43', 'systematic', 'basic', NULL, 2, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (140, '普通程序员如何转型到人工智能领域00', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 1706, 0.00, '/course/140/lesson', '2017-10-30 14:51:40', 'open', 'basic', NULL, 3, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '小象老师');
+INSERT INTO `tb_course` VALUES (141, '《Python数据分析升级版》第三期21', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 300, 899.00, '/course/141/lesson', '2017-10-30 14:51:40', 'open', 'basic', NULL, 4, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (142, '《深度学习实训:人脸识别项目》22', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', 3, 3499.00, '/course/142/lesson', '2017-10-30 14:51:40', 'open', 'basic', NULL, 5, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
+INSERT INTO `tb_course` VALUES (143, '零基础Python入门23', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', 4214, 299.00, '/course/143/lesson', '2017-10-30 14:51:40', 'open', 'basic', NULL, 6, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (144, '算法与数据结构中的面试与刷题24', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', 608, 0.00, '/course/144/lesson', '2017-10-30 14:51:40', 'open', 'basic', NULL, 7, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (145, '深度学习中的序列模型25', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', 539, 0.00, '/course/145/lesson', '2017-10-30 14:51:40', 'open', 'basic', NULL, 8, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (146, '《面试算法LeetCode刷题班》26', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', 441, 899.00, '/course/146/lesson', '2017-10-30 14:51:40', 'open', 'basic', NULL, 9, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (147, '《BAT面试算法特训班》27', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', 1421, 899.00, '/course/147/lesson', '2017-10-30 14:51:40', 'open', 'basic', NULL, 10, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (148, '《深度学习》第五期28', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', 836, 899.00, '/course/148/lesson', '2017-10-26 11:37:44', 'open', 'basic', NULL, 1, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (149, '详解动态规划与隐马尔科夫模型29', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', 1387, 0.00, '/course/149/lesson', '2017-10-30 14:51:41', 'open', 'basic', NULL, 2, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (150, '普通程序员如何转型到人工智能领域30', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 1706, 0.00, '/course/150/lesson', '2017-10-30 14:51:41', 'open', 'basic', NULL, 3, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '小象老师');
+INSERT INTO `tb_course` VALUES (151, '《Python数据分析升级版》第三期31', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 300, 899.00, '/course/151/lesson', '2017-10-30 14:51:41', 'open', 'basic', NULL, 4, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (152, '《深度学习实训:人脸识别项目32》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', 3, 3499.00, '/course/152/lesson', '2017-10-30 14:51:41', 'open', 'basic', NULL, 5, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
+INSERT INTO `tb_course` VALUES (153, '零基础Python入门33', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', 4214, 299.00, '/course/153/lesson', '2017-10-30 14:51:41', 'open', 'basic', NULL, 6, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (154, '算法与数据结构中的面试与刷题34', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', 608, 0.00, '/course/154/lesson', '2017-10-30 14:51:41', 'open', 'basic', NULL, 7, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (155, '深度学习中的序列模型35', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', 539, 0.00, '/course/155/lesson', '2017-10-30 14:51:41', 'open', 'basic', NULL, 8, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (156, '《面试算法LeetCode刷题班》36', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', 441, 899.00, '/course/156/lesson', '2017-10-30 14:51:41', 'open', 'basic', NULL, 9, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (157, '《BAT面试算法特训班》37', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', 1421, 899.00, '/course/157/lesson', '2017-10-30 14:51:41', 'open', 'basic', NULL, 10, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (158, '《深度学习》第五期38', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', 836, 899.00, '/course/158/lesson', '2017-10-26 11:37:44', 'systematic', 'basic', NULL, 1, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (159, '详解动态规划与隐马尔科夫模型39', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', 1387, 0.00, '/course/159/lesson', '2017-10-30 14:51:41', 'systematic', 'basic', NULL, 2, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (160, '普通程序员如何转型到人工智能领域40', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 1706, 0.00, '/course/160/lesson', '2017-10-30 14:51:41', 'systematic', 'basic', NULL, 3, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '小象老师');
+INSERT INTO `tb_course` VALUES (161, '《Python数据分析升级版》第三期', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 300, 899.00, '/course/161/lesson', '2017-10-30 14:51:41', 'systematic', 'basic', NULL, 4, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (162, '《深度学习实训:人脸识别项目》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', 3, 3499.00, '/course/162/lesson', '2017-10-30 14:51:41', 'systematic', 'basic', NULL, 5, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
+INSERT INTO `tb_course` VALUES (163, '零基础Python入门', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', 4214, 299.00, '/course/163/lesson', '2017-10-30 14:51:41', 'open', 'basic', NULL, 6, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (164, '算法与数据结构中的面试与刷题', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', 608, 0.00, '/course/164/lesson', '2017-10-30 14:51:41', 'open', 'basic', NULL, 7, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (165, '深度学习中的序列模型', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', 539, 0.00, '/course/165/lesson', '2017-10-30 14:51:41', 'open', 'basic', NULL, 8, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (166, '《面试算法LeetCode刷题班》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', 441, 899.00, '/course/166/lesson', '2017-10-30 14:51:41', 'open', 'basic', NULL, 9, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (167, '《BAT面试算法特训班》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', 1421, 899.00, '/course/167/lesson', '2017-10-30 14:51:41', 'open', 'basic', NULL, 10, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (168, '《深度学习》第五期', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', 836, 899.00, '/course/168/lesson', '2017-10-26 11:37:44', 'open', 'basic', NULL, 1, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (169, '详解动态规划与隐马尔科夫模型', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', 1387, 0.00, '/course/169/lesson', '2017-10-30 14:52:02', 'open', 'basic', NULL, 2, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (170, '普通程序员如何转型到人工智能领域', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 1706, 0.00, '/course/170/lesson', '2017-10-30 14:52:02', 'open', 'basic', NULL, 3, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '小象老师');
+INSERT INTO `tb_course` VALUES (171, '《Python数据分析升级版》第三期11', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 300, 899.00, '/course/171/lesson', '2017-10-30 14:52:02', 'open', 'basic', NULL, 4, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (172, '《深度学习实训:人脸识别项目22》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', 3, 3499.00, '/course/172/lesson', '2017-10-30 14:52:02', 'open', 'basic', NULL, 5, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
+INSERT INTO `tb_course` VALUES (173, '零基础Python入门33', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', 4214, 299.00, '/course/173/lesson', '2017-10-30 14:52:02', 'open', 'basic', NULL, 6, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (174, '算法与数据结构中的面试与刷题44', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', 608, 0.00, '/course/174/lesson', '2017-10-30 14:52:02', 'open', 'basic', NULL, 7, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (175, '深度学习中的序列模型55', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', 539, 0.00, '/course/175/lesson', '2017-10-30 14:52:02', 'open', 'basic', NULL, 8, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (176, '《面试算法LeetCode刷题班》66', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', 441, 899.00, '/course/176/lesson', '2017-10-30 14:52:02', 'open', 'basic', NULL, 9, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (177, '《BAT面试算法特训班》77', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', 1421, 899.00, '/course/177/lesson', '2017-10-30 14:52:02', 'open', 'basic', NULL, 10, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (178, '《深度学习》第五期88', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', 836, 899.00, '/course/178/lesson', '2017-10-26 11:37:45', 'open', 'basic', NULL, 1, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (179, '详解动态规划与隐马尔科夫模型99', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', 1387, 0.00, '/course/179/lesson', '2017-10-30 14:52:11', 'open', 'basic', NULL, 2, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (180, '普通程序员如何转型到人工智能领域00', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 1706, 0.00, '/course/180/lesson', '2017-10-30 14:52:22', 'open', 'basic', NULL, 1, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '小象老师');
+INSERT INTO `tb_course` VALUES (181, '《Python数据分析升级版》第三期21', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 300, 899.00, '/course/181/lesson', '2017-10-30 14:52:22', 'open', 'basic', NULL, 2, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (182, '《深度学习实训:人脸识别项目》22', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', 3, 3499.00, '/course/182/lesson', '2017-10-30 14:52:22', 'open', 'basic', NULL, 3, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
+INSERT INTO `tb_course` VALUES (183, '零基础Python入门23', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', 4214, 299.00, '/course/183/lesson', '2017-10-30 14:52:22', 'open', 'basic', NULL, 4, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (184, '算法与数据结构中的面试与刷题24', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', 608, 0.00, '/course/184/lesson', '2017-10-30 14:52:22', 'open', 'basic', NULL, 5, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (185, '深度学习中的序列模型25', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', 539, 0.00, '/course/185/lesson', '2017-10-30 14:52:22', 'open', 'basic', NULL, 6, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (186, '《面试算法LeetCode刷题班》26', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', 441, 899.00, '/course/186/lesson', '2017-10-30 14:52:22', 'open', 'basic', NULL, 7, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (187, '《BAT面试算法特训班》27', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', 1421, 899.00, '/course/187/lesson', '2017-10-30 14:52:22', 'open', 'basic', NULL, 8, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (188, '《深度学习》第五期28', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', 836, 899.00, '/course/188/lesson', '2017-10-30 14:52:22', 'open', 'basic', NULL, 9, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (189, '详解动态规划与隐马尔科夫模型29', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', 1387, 0.00, '/course/189/lesson', '2017-10-30 14:52:22', 'open', 'basic', NULL, 10, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (190, '普通程序员如何转型到人工智能领域30', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 1706, 0.00, '/course/190/lesson', '2017-10-26 11:37:45', 'open', 'basic', NULL, 1, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '小象老师');
+INSERT INTO `tb_course` VALUES (191, '《Python数据分析升级版》第三期31', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 300, 899.00, '/course/191/lesson', '2017-10-26 11:37:45', 'open', 'basic', NULL, 1, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (192, '《深度学习实训:人脸识别项目32》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', 3, 3499.00, '/course/192/lesson', '2017-10-30 14:52:30', 'open', 'basic', NULL, 2, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
+INSERT INTO `tb_course` VALUES (193, '零基础Python入门33', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', 4214, 299.00, '/course/193/lesson', '2017-10-30 14:52:30', 'open', 'basic', NULL, 3, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (194, '算法与数据结构中的面试与刷题34', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', 608, 0.00, '/course/194/lesson', '2017-10-30 14:52:30', 'open', 'basic', NULL, 4, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (195, '深度学习中的序列模型35', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', 539, 0.00, '/course/195/lesson', '2017-10-30 14:52:30', 'open', 'basic', NULL, 5, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (196, '《面试算法LeetCode刷题班》36', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', 441, 899.00, '/course/196/lesson', '2017-10-30 14:52:30', 'open', 'basic', NULL, 6, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (197, '《BAT面试算法特训班》37', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', 1421, 899.00, '/course/197/lesson', '2017-10-30 14:52:30', 'open', 'basic', NULL, 7, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (198, '《深度学习》第五期38', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', 836, 899.00, '/course/198/lesson', '2017-10-30 14:52:30', 'open', 'basic', NULL, 8, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (199, '详解动态规划与隐马尔科夫模型39', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', 1387, 0.00, '/course/199/lesson', '2017-10-30 14:52:30', 'open', 'basic', NULL, 9, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (200, '普通程序员如何转型到人工智能领域40', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 1706, 0.00, '/course/200/lesson', '2017-10-30 14:52:30', 'open', 'basic', NULL, 10, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '小象老师');
+INSERT INTO `tb_course` VALUES (201, '《Python数据分析升级版》第三期', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 300, 899.00, '/course/201/lesson', '2017-10-30 14:52:52', 'open', 'basic', NULL, 2, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (202, '《深度学习实训:人脸识别项目》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', 3, 3499.00, '/course/202/lesson', '2017-10-30 14:52:52', 'open', 'basic', NULL, 3, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
+INSERT INTO `tb_course` VALUES (203, '零基础Python入门', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', 4214, 299.00, '/course/203/lesson', '2017-10-30 14:52:52', 'open', 'basic', NULL, 4, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (204, '算法与数据结构中的面试与刷题', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', 608, 0.00, '/course/204/lesson', '2017-10-30 14:52:52', 'open', 'basic', NULL, 5, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (205, '深度学习中的序列模型', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', 539, 0.00, '/course/205/lesson', '2017-10-30 14:52:53', 'open', 'basic', NULL, 6, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (206, '《面试算法LeetCode刷题班》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', 441, 899.00, '/course/206/lesson', '2017-10-30 14:52:53', 'open', 'basic', NULL, 7, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (207, '《BAT面试算法特训班》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', 1421, 899.00, '/course/207/lesson', '2017-10-30 14:52:53', 'open', 'basic', NULL, 8, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (208, '《深度学习》第五期', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', 836, 899.00, '/course/208/lesson', '2017-10-30 14:52:53', 'open', 'basic', NULL, 9, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (209, '详解动态规划与隐马尔科夫模型', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', 1387, 0.00, '/course/209/lesson', '2017-10-30 14:52:53', 'open', 'basic', NULL, 10, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (210, '普通程序员如何转型到人工智能领域', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 1706, 0.00, '/course/210/lesson', '2017-10-30 14:53:07', 'open', 'basic', NULL, 2, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '小象老师');
+INSERT INTO `tb_course` VALUES (211, '《Python数据分析升级版》第三期11', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 300, 899.00, '/course/211/lesson', '2017-10-30 14:53:07', 'open', 'basic', NULL, 3, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (212, '《深度学习实训:人脸识别项目22》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', 3, 3499.00, '/course/212/lesson', '2017-10-30 14:53:07', 'open', 'basic', NULL, 4, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
+INSERT INTO `tb_course` VALUES (213, '零基础Python入门33', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', 4214, 299.00, '/course/213/lesson', '2017-10-30 14:53:07', 'open', 'basic', NULL, 5, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (214, '算法与数据结构中的面试与刷题44', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', 608, 0.00, '/course/214/lesson', '2017-10-30 14:53:07', 'open', 'basic', NULL, 6, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (215, '深度学习中的序列模型55', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', 539, 0.00, '/course/215/lesson', '2017-10-30 14:53:07', 'open', 'basic', NULL, 7, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (216, '《面试算法LeetCode刷题班》66', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', 441, 899.00, '/course/216/lesson', '2017-10-30 14:53:07', 'open', 'basic', NULL, 8, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (217, '《BAT面试算法特训班》77', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', 1421, 899.00, '/course/217/lesson', '2017-10-30 14:53:07', 'open', 'basic', NULL, 9, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (218, '《深度学习》第五期88', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', 836, 899.00, '/course/218/lesson', '2017-10-30 14:53:07', 'open', 'basic', NULL, 10, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (219, '详解动态规划与隐马尔科夫模型99', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', 1387, 0.00, '/course/219/lesson', '2017-10-26 11:37:46', 'open', 'basic', NULL, 1, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (220, '普通程序员如何转型到人工智能领域00', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 1706, 0.00, '/course/220/lesson', '2017-10-30 14:53:24', 'open', 'basic', NULL, 2, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '小象老师');
+INSERT INTO `tb_course` VALUES (221, '《Python数据分析升级版》第三期21', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 300, 899.00, '/course/221/lesson', '2017-10-30 14:53:24', 'open', 'basic', NULL, 3, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (222, '《深度学习实训:人脸识别项目》22', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', 3, 3499.00, '/course/222/lesson', '2017-10-30 14:53:24', 'open', 'basic', NULL, 4, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
+INSERT INTO `tb_course` VALUES (223, '零基础Python入门23', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', 4214, 299.00, '/course/223/lesson', '2017-10-30 14:53:24', 'open', 'basic', NULL, 5, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (224, '算法与数据结构中的面试与刷题24', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', 608, 0.00, '/course/224/lesson', '2017-10-30 14:53:24', 'open', 'basic', NULL, 6, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (225, '深度学习中的序列模型25', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', 539, 0.00, '/course/225/lesson', '2017-10-30 14:53:24', 'open', 'basic', NULL, 7, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (226, '《面试算法LeetCode刷题班》26', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', 441, 899.00, '/course/226/lesson', '2017-10-30 14:53:24', 'open', 'basic', NULL, 8, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (227, '《BAT面试算法特训班》27', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', 1421, 899.00, '/course/227/lesson', '2017-10-30 14:53:24', 'open', 'basic', NULL, 9, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (228, '《深度学习》第五期28', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', 836, 899.00, '/course/228/lesson', '2017-10-30 14:53:24', 'open', 'basic', NULL, 10, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (229, '详解动态规划与隐马尔科夫模型29', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', 1387, 0.00, '/course/229/lesson', '2017-10-30 14:53:24', 'open', 'basic', NULL, 2, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (230, '普通程序员如何转型到人工智能领域30', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 1706, 0.00, '/course/230/lesson', '2017-10-30 14:53:24', 'open', 'basic', NULL, 3, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '小象老师');
+INSERT INTO `tb_course` VALUES (231, '《Python数据分析升级版》第三期31', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 300, 899.00, '/course/231/lesson', '2017-10-30 14:53:24', 'open', 'basic', NULL, 4, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (232, '《深度学习实训:人脸识别项目32》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', 3, 3499.00, '/course/232/lesson', '2017-10-30 14:53:25', 'open', 'basic', NULL, 5, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
+INSERT INTO `tb_course` VALUES (233, '零基础Python入门33', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', 4214, 299.00, '/course/233/lesson', '2017-10-30 14:53:25', 'open', 'basic', NULL, 6, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (234, '算法与数据结构中的面试与刷题34', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', 608, 0.00, '/course/234/lesson', '2017-10-30 14:53:25', 'open', 'basic', NULL, 7, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (235, '深度学习中的序列模型35', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', 539, 0.00, '/course/235/lesson', '2017-10-30 14:53:25', 'open', 'basic', NULL, 8, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (236, '《面试算法LeetCode刷题班》36', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', 441, 899.00, '/course/236/lesson', '2017-10-30 14:53:25', 'open', 'basic', NULL, 9, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (237, '《BAT面试算法特训班》37', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', 1421, 899.00, '/course/237/lesson', '2017-10-30 14:53:25', 'open', 'basic', NULL, 10, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (238, '《深度学习》第五期38', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', 836, 899.00, '/course/238/lesson', '2017-10-30 14:53:25', 'open', 'basic', NULL, 2, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (239, '详解动态规划与隐马尔科夫模型39', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', 1387, 0.00, '/course/239/lesson', '2017-10-30 14:53:25', 'open', 'basic', NULL, 3, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (240, '普通程序员如何转型到人工智能领域40', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 1706, 0.00, '/course/240/lesson', '2017-10-30 14:53:25', 'open', 'basic', NULL, 4, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '小象老师');
+INSERT INTO `tb_course` VALUES (241, '《Python数据分析升级版》第三期', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 300, 899.00, '/course/241/lesson', '2017-10-30 14:53:25', 'open', 'basic', NULL, 5, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (242, '《深度学习实训:人脸识别项目》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', 3, 3499.00, '/course/242/lesson', '2017-10-30 14:53:25', 'open', 'basic', NULL, 6, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
+INSERT INTO `tb_course` VALUES (243, '零基础Python入门', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', 4214, 299.00, '/course/243/lesson', '2017-10-30 14:53:25', 'open', 'basic', NULL, 7, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (244, '算法与数据结构中的面试与刷题', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', 608, 0.00, '/course/244/lesson', '2017-10-30 14:53:25', 'open', 'basic', NULL, 8, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (245, '深度学习中的序列模型', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', 539, 0.00, '/course/245/lesson', '2017-10-30 14:53:25', 'open', 'basic', NULL, 9, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (246, '《面试算法LeetCode刷题班》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', 441, 899.00, '/course/246/lesson', '2017-10-30 14:53:25', 'open', 'basic', NULL, 10, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (247, '《BAT面试算法特训班》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', 1421, 899.00, '/course/247/lesson', '2017-10-26 11:37:47', 'open', 'basic', NULL, 1, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (248, '《深度学习》第五期', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', 836, 899.00, '/course/248/lesson', '2017-10-30 14:54:31', 'open', 'basic', NULL, 6, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (249, '详解动态规划与隐马尔科夫模型', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', 1387, 0.00, '/course/249/lesson', '2017-10-30 14:54:34', 'open', 'basic', NULL, 7, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (250, '普通程序员如何转型到人工智能领域', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 1706, 0.00, '/course/250/lesson', '2017-10-30 14:54:35', 'open', 'basic', NULL, 9, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '小象老师');
+INSERT INTO `tb_course` VALUES (251, '《Python数据分析升级版》第三期11', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 300, 899.00, '/course/251/lesson', '2017-10-30 14:55:17', 'open', 'basic', NULL, 8, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (252, '《深度学习实训:人脸识别项目22》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', 3, 3499.00, '/course/252/lesson', '2017-10-30 14:55:17', 'open', 'basic', NULL, 9, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
+INSERT INTO `tb_course` VALUES (253, '零基础Python入门33', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', 4214, 299.00, '/course/253/lesson', '2017-10-30 14:55:17', 'open', 'basic', NULL, 10, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (254, '算法与数据结构中的面试与刷题44', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', 608, 0.00, '/course/254/lesson', '2017-10-30 14:55:17', 'open', 'basic', NULL, 1, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (255, '深度学习中的序列模型55', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', 539, 0.00, '/course/255/lesson', '2017-10-26 11:37:47', 'open', 'basic', NULL, 2, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (256, '《面试算法LeetCode刷题班》66', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', 441, 899.00, '/course/256/lesson', '2017-10-30 14:55:17', 'open', 'basic', NULL, 3, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (257, '《BAT面试算法特训班》77', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', 1421, 899.00, '/course/257/lesson', '2017-10-26 11:37:47', 'open', 'basic', NULL, 2, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (258, '《深度学习》第五期88', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', 836, 899.00, '/course/258/lesson', '2017-10-26 11:37:47', 'open', 'basic', NULL, 2, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (259, '详解动态规划与隐马尔科夫模型99', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', 1387, 0.00, '/course/259/lesson', '2017-10-26 11:37:47', 'open', 'basic', NULL, 2, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (260, '普通程序员如何转型到人工智能领域00', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 1706, 0.00, '/course/260/lesson', '2017-10-30 14:55:49', 'open', 'da', NULL, 3, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '小象老师');
+INSERT INTO `tb_course` VALUES (261, '《Python数据分析升级版》第三期21', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 300, 899.00, '/course/261/lesson', '2017-10-30 14:55:49', 'systematic', 'da', NULL, 4, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (262, '《深度学习实训:人脸识别项目》22', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', 3, 3499.00, '/course/262/lesson', '2017-10-30 14:55:49', 'systematic', 'da', NULL, 5, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
+INSERT INTO `tb_course` VALUES (263, '零基础Python入门23', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', 4214, 299.00, '/course/263/lesson', '2017-10-30 14:55:49', 'systematic', 'da', NULL, 6, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (264, '算法与数据结构中的面试与刷题24', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', 608, 0.00, '/course/264/lesson', '2017-10-30 14:55:49', 'systematic', 'da', NULL, 7, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (265, '深度学习中的序列模型25', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', 539, 0.00, '/course/265/lesson', '2017-10-30 14:55:49', 'systematic', 'da', NULL, 8, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (266, '《面试算法LeetCode刷题班》26', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', 441, 899.00, '/course/266/lesson', '2017-10-30 14:55:49', 'systematic', 'da', NULL, 9, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (267, '《BAT面试算法特训班》27', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', 1421, 899.00, '/course/267/lesson', '2017-10-30 14:55:49', 'systematic', 'da', NULL, 10, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (268, '《深度学习》第五期28', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', 836, 899.00, '/course/268/lesson', '2017-10-30 14:55:49', 'systematic', 'da', NULL, 2, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (269, '详解动态规划与隐马尔科夫模型29', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', 1387, 0.00, '/course/269/lesson', '2017-10-30 14:55:49', 'systematic', 'da', NULL, 3, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (270, '普通程序员如何转型到人工智能领域30', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 1706, 0.00, '/course/270/lesson', '2017-10-26 11:37:48', 'systematic', 'da', NULL, 1, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '小象老师');
+INSERT INTO `tb_course` VALUES (271, '《Python数据分析升级版》第三期31', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 300, 899.00, '/course/271/lesson', '2017-10-30 14:55:53', 'systematic', 'da', NULL, 3, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (272, '《深度学习实训:人脸识别项目32》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', 3, 3499.00, '/course/272/lesson', '2017-10-30 14:55:53', 'systematic', 'da', NULL, 4, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
+INSERT INTO `tb_course` VALUES (273, '零基础Python入门33', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', 4214, 299.00, '/course/273/lesson', '2017-10-30 14:55:53', 'systematic', 'da', NULL, 5, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (274, '算法与数据结构中的面试与刷题34', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', 608, 0.00, '/course/274/lesson', '2017-10-30 14:55:53', 'open', 'da', NULL, 6, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (275, '深度学习中的序列模型35', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', 539, 0.00, '/course/275/lesson', '2017-10-30 14:55:53', 'open', 'da', NULL, 7, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (276, '《面试算法LeetCode刷题班》36', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', 441, 899.00, '/course/276/lesson', '2017-10-30 14:55:53', 'open', 'da', NULL, 8, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (277, '《BAT面试算法特训班》37', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', 1421, 899.00, '/course/277/lesson', '2017-10-30 14:55:53', 'open', 'da', NULL, 9, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (278, '《深度学习》第五期38', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', 836, 899.00, '/course/278/lesson', '2017-10-30 14:55:54', 'open', 'da', NULL, 10, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (279, '详解动态规划与隐马尔科夫模型39', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', 1387, 0.00, '/course/279/lesson', '2017-10-30 14:55:54', 'open', 'da', NULL, 2, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (280, '普通程序员如何转型到人工智能领域40', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 1706, 0.00, '/course/280/lesson', '2017-10-30 14:55:54', 'open', 'da', NULL, 3, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '小象老师');
+INSERT INTO `tb_course` VALUES (281, '《Python数据分析升级版》第三期', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 300, 899.00, '/course/281/lesson', '2017-10-30 14:56:00', 'open', 'da', NULL, 3, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (282, '《深度学习实训:人脸识别项目》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', 3, 3499.00, '/course/282/lesson', '2017-10-30 14:56:00', 'open', 'da', NULL, 4, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
+INSERT INTO `tb_course` VALUES (283, '零基础Python入门', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', 4214, 299.00, '/course/283/lesson', '2017-10-30 14:56:00', 'open', 'da', NULL, 5, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (284, '算法与数据结构中的面试与刷题', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', 608, 0.00, '/course/284/lesson', '2017-10-30 14:56:00', 'open', 'da', NULL, 6, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (285, '深度学习中的序列模型', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', 539, 0.00, '/course/285/lesson', '2017-10-30 14:56:00', 'open', 'da', NULL, 7, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (286, '《面试算法LeetCode刷题班》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', 441, 899.00, '/course/286/lesson', '2017-10-30 14:56:00', 'open', 'da', NULL, 8, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (287, '《BAT面试算法特训班》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', 1421, 899.00, '/course/287/lesson', '2017-10-30 14:56:00', 'open', 'da', NULL, 9, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (288, '《深度学习》第五期', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', 836, 899.00, '/course/288/lesson', '2017-10-30 14:56:00', 'open', 'da', NULL, 10, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (289, '详解动态规划与隐马尔科夫模型', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', 1387, 0.00, '/course/289/lesson', '2017-10-30 14:56:00', 'open', 'da', NULL, 2, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (290, '普通程序员如何转型到人工智能领域', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 1706, 0.00, '/course/290/lesson', '2017-10-30 14:56:00', 'open', 'da', NULL, 3, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '小象老师');
+INSERT INTO `tb_course` VALUES (291, '《Python数据分析升级版》第三期11', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 300, 899.00, '/course/291/lesson', '2017-10-30 14:56:07', 'open', 'da', NULL, 3, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (292, '《深度学习实训:人脸识别项目22》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', 3, 3499.00, '/course/292/lesson', '2017-10-30 14:56:07', 'open', 'da', NULL, 4, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
+INSERT INTO `tb_course` VALUES (293, '零基础Python入门33', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', 4214, 299.00, '/course/293/lesson', '2017-10-30 14:56:07', 'open', 'da', NULL, 5, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (294, '算法与数据结构中的面试与刷题44', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', 608, 0.00, '/course/294/lesson', '2017-10-30 14:56:07', 'open', 'da', NULL, 6, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (295, '深度学习中的序列模型55', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', 539, 0.00, '/course/295/lesson', '2017-10-30 14:56:07', 'open', 'da', NULL, 7, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (296, '《面试算法LeetCode刷题班》66', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', 441, 899.00, '/course/296/lesson', '2017-10-30 14:56:07', 'open', 'da', NULL, 8, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (297, '《BAT面试算法特训班》77', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', 1421, 899.00, '/course/297/lesson', '2017-10-30 14:56:07', 'open', 'da', NULL, 9, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (298, '《深度学习》第五期88', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', 836, 899.00, '/course/298/lesson', '2017-10-30 14:56:07', 'open', 'da', NULL, 10, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (299, '详解动态规划与隐马尔科夫模型99', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', 1387, 0.00, '/course/299/lesson', '2017-10-30 14:56:07', 'open', 'da', NULL, 2, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (300, '普通程序员如何转型到人工智能领域00', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 1706, 0.00, '/course/300/lesson', '2017-10-30 14:56:07', 'open', 'da', NULL, 3, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '小象老师');
+INSERT INTO `tb_course` VALUES (301, '《Python数据分析升级版》第三期21', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 300, 899.00, '/course/301/lesson', '2017-10-30 14:56:12', 'open', 'da', NULL, 3, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (302, '《深度学习实训:人脸识别项目》22', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', 3, 3499.00, '/course/302/lesson', '2017-10-30 14:56:12', 'open', 'da', NULL, 4, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
+INSERT INTO `tb_course` VALUES (303, '零基础Python入门23', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', 4214, 299.00, '/course/303/lesson', '2017-10-30 14:56:12', 'open', 'da', NULL, 5, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (304, '算法与数据结构中的面试与刷题24', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', 608, 0.00, '/course/304/lesson', '2017-10-30 14:56:12', 'open', 'da', NULL, 6, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (305, '深度学习中的序列模型25', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', 539, 0.00, '/course/305/lesson', '2017-10-30 14:56:12', 'open', 'da', NULL, 7, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (306, '《面试算法LeetCode刷题班》26', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', 441, 899.00, '/course/306/lesson', '2017-10-30 14:56:12', 'open', 'da', NULL, 8, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (307, '《BAT面试算法特训班》27', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', 1421, 899.00, '/course/307/lesson', '2017-10-30 14:56:12', 'open', 'da', NULL, 9, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (308, '《深度学习》第五期28', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', 836, 899.00, '/course/308/lesson', '2017-10-30 14:56:12', 'open', 'da', NULL, 10, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (309, '详解动态规划与隐马尔科夫模型29', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', 1387, 0.00, '/course/309/lesson', '2017-10-30 14:56:13', 'open', 'da', NULL, 2, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (310, '普通程序员如何转型到人工智能领域30', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 1706, 0.00, '/course/310/lesson', '2017-10-30 14:56:13', 'open', 'da', NULL, 3, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '小象老师');
+INSERT INTO `tb_course` VALUES (311, '《Python数据分析升级版》第三期31', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 300, 899.00, '/course/311/lesson', '2017-10-30 14:56:20', 'open', 'da', NULL, 3, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (312, '《深度学习实训:人脸识别项目32》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', 3, 3499.00, '/course/312/lesson', '2017-10-30 14:56:20', 'open', 'da', NULL, 4, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
+INSERT INTO `tb_course` VALUES (313, '零基础Python入门33', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', 4214, 299.00, '/course/313/lesson', '2017-10-30 14:56:20', 'open', 'da', NULL, 5, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (314, '算法与数据结构中的面试与刷题34', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', 608, 0.00, '/course/314/lesson', '2017-10-30 14:56:20', 'open', 'da', NULL, 6, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (315, '深度学习中的序列模型35', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', 539, 0.00, '/course/315/lesson', '2017-10-30 14:56:20', 'open', 'da', NULL, 7, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (316, '《面试算法LeetCode刷题班》36', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', 441, 899.00, '/course/316/lesson', '2017-10-30 14:56:20', 'open', 'da', NULL, 8, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (317, '《BAT面试算法特训班》37', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', 1421, 899.00, '/course/317/lesson', '2017-10-30 14:56:20', 'open', 'da', NULL, 9, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (318, '《深度学习》第五期38', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', 836, 899.00, '/course/318/lesson', '2017-10-30 14:56:20', 'open', 'da', NULL, 10, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (319, '详解动态规划与隐马尔科夫模型39', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', 1387, 0.00, '/course/319/lesson', '2017-10-30 14:56:20', 'open', 'da', NULL, 2, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (320, '普通程序员如何转型到人工智能领域40', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 1706, 0.00, '/course/320/lesson', '2017-10-30 14:56:20', 'open', 'da', NULL, 3, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '小象老师');
+INSERT INTO `tb_course` VALUES (321, '《Python数据分析升级版》第三期', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 300, 899.00, '/course/321/lesson', '2017-10-30 14:56:25', 'open', 'da', NULL, 3, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (322, '《深度学习实训:人脸识别项目》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', 3, 3499.00, '/course/322/lesson', '2017-10-30 14:56:25', 'open', 'da', NULL, 4, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
+INSERT INTO `tb_course` VALUES (323, '零基础Python入门', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', 4214, 299.00, '/course/323/lesson', '2017-10-30 14:56:25', 'open', 'da', NULL, 5, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (324, '算法与数据结构中的面试与刷题', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', 608, 0.00, '/course/324/lesson', '2017-10-30 14:56:25', 'open', 'da', NULL, 6, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (325, '深度学习中的序列模型', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', 539, 0.00, '/course/325/lesson', '2017-10-30 14:56:25', 'open', 'da', NULL, 7, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (326, '《面试算法LeetCode刷题班》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', 441, 899.00, '/course/326/lesson', '2017-10-30 14:56:25', 'open', 'da', NULL, 8, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (327, '《BAT面试算法特训班》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', 1421, 899.00, '/course/327/lesson', '2017-10-30 14:56:25', 'open', 'da', NULL, 9, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (328, '《深度学习》第五期', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', 836, 899.00, '/course/328/lesson', '2017-10-30 14:56:25', 'open', 'da', NULL, 10, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (329, '详解动态规划与隐马尔科夫模型', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', 1387, 0.00, '/course/329/lesson', '2017-10-30 14:56:25', 'open', 'da', NULL, 2, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (330, '普通程序员如何转型到人工智能领域', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 1706, 0.00, '/course/330/lesson', '2017-10-30 14:56:25', 'open', 'da', NULL, 3, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '小象老师');
+INSERT INTO `tb_course` VALUES (331, '《Python数据分析升级版》第三期11', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 300, 899.00, '/course/331/lesson', '2017-10-30 14:56:31', 'open', 'da', NULL, 3, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (332, '《深度学习实训:人脸识别项目22》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', 3, 3499.00, '/course/332/lesson', '2017-10-30 14:56:31', 'open', 'da', NULL, 4, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
+INSERT INTO `tb_course` VALUES (333, '零基础Python入门33', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', 4214, 299.00, '/course/333/lesson', '2017-10-30 14:56:32', 'open', 'da', NULL, 5, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (334, '算法与数据结构中的面试与刷题44', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', 608, 0.00, '/course/334/lesson', '2017-10-30 14:56:32', 'open', 'da', NULL, 6, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (335, '深度学习中的序列模型55', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', 539, 0.00, '/course/335/lesson', '2017-10-30 14:56:32', 'open', 'da', NULL, 7, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (336, '《面试算法LeetCode刷题班》66', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', 441, 899.00, '/course/336/lesson', '2017-10-30 14:56:32', 'open', 'da', NULL, 8, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (337, '《BAT面试算法特训班》77', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', 1421, 899.00, '/course/337/lesson', '2017-10-30 14:56:32', 'open', 'da', NULL, 9, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (338, '《深度学习》第五期88', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', 836, 899.00, '/course/338/lesson', '2017-10-30 14:56:32', 'open', 'da', NULL, 10, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (339, '详解动态规划与隐马尔科夫模型99', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', 1387, 0.00, '/course/339/lesson', '2017-10-30 14:56:32', 'open', 'da', NULL, 2, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (340, '普通程序员如何转型到人工智能领域00', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 1706, 0.00, '/course/340/lesson', '2017-10-30 14:56:32', 'open', 'da', NULL, 3, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '小象老师');
+INSERT INTO `tb_course` VALUES (341, '《Python数据分析升级版》第三期21', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 300, 899.00, '/course/341/lesson', '2017-10-30 14:56:37', 'open', 'da', NULL, 3, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (342, '《深度学习实训:人脸识别项目》22', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', 3, 3499.00, '/course/342/lesson', '2017-10-30 14:56:37', 'open', 'da', NULL, 4, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
+INSERT INTO `tb_course` VALUES (343, '零基础Python入门23', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', 4214, 299.00, '/course/343/lesson', '2017-10-30 14:56:37', 'open', 'da', NULL, 5, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (344, '算法与数据结构中的面试与刷题24', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', 608, 0.00, '/course/344/lesson', '2017-10-30 14:56:37', 'open', 'da', NULL, 6, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (345, '深度学习中的序列模型25', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', 539, 0.00, '/course/345/lesson', '2017-10-30 14:56:37', 'open', 'da', NULL, 7, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (346, '《面试算法LeetCode刷题班》26', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', 441, 899.00, '/course/346/lesson', '2017-10-30 14:56:37', 'open', 'da', NULL, 8, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (347, '《BAT面试算法特训班》27', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', 1421, 899.00, '/course/347/lesson', '2017-10-30 14:56:37', 'open', 'da', NULL, 9, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (348, '《深度学习》第五期28', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', 836, 899.00, '/course/348/lesson', '2017-10-30 14:56:37', 'open', 'da', NULL, 10, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (349, '详解动态规划与隐马尔科夫模型29', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', 1387, 0.00, '/course/349/lesson', '2017-10-26 11:37:51', 'open', 'da', NULL, 2, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (350, '普通程序员如何转型到人工智能领域30', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 1706, 0.00, '/course/350/lesson', '2017-10-30 14:56:37', 'open', 'da', NULL, 3, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '小象老师');
+INSERT INTO `tb_course` VALUES (351, '《Python数据分析升级版》第三期31', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 300, 899.00, '/course/351/lesson', '2017-10-30 14:56:46', 'open', 'da', NULL, 3, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (352, '《深度学习实训:人脸识别项目32》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', 3, 3499.00, '/course/352/lesson', '2017-10-30 14:56:46', 'open', 'da', NULL, 4, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
+INSERT INTO `tb_course` VALUES (353, '零基础Python入门33', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', 4214, 299.00, '/course/353/lesson', '2017-10-30 14:56:46', 'open', 'da', NULL, 5, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (354, '算法与数据结构中的面试与刷题34', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', 608, 0.00, '/course/354/lesson', '2017-10-30 14:56:46', 'open', 'da', NULL, 6, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (355, '深度学习中的序列模型35', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', 539, 0.00, '/course/355/lesson', '2017-10-30 14:56:46', 'bootcamp', 'da', NULL, 7, '2017-02-01 21:52:35', '2019-11-27 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (356, '《面试算法LeetCode刷题班》36', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', 441, 899.00, '/course/356/lesson', '2017-10-30 14:56:46', 'bootcamp', 'da', NULL, 8, '2017-02-01 21:52:35', '2017-04-25 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (357, '《BAT面试算法特训班》37', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', 1421, 899.00, '/course/357/lesson', '2017-10-30 14:56:46', 'bootcamp', 'da', NULL, 9, '2017-02-01 21:52:35', '2019-11-27 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (358, '《深度学习》第五期38', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', 836, 899.00, '/course/358/lesson', '2017-10-30 14:56:46', 'bootcamp', 'da', NULL, 10, '2017-02-01 21:52:35', '2017-04-25 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (359, '详解动态规划与隐马尔科夫模型39', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', 1387, 0.00, '/course/359/lesson', '2017-10-30 14:56:46', 'bootcamp', 'da', NULL, 2, '2017-02-01 21:52:35', '2019-11-27 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (360, '普通程序员如何转型到人工智能领域40', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 1706, 0.00, '/course/360/lesson', '2017-10-30 14:56:46', 'bootcamp', 'da', NULL, 3, '2017-02-01 21:52:35', '2017-04-25 21:52:53', '小象老师');
+INSERT INTO `tb_course` VALUES (361, '《Python数据分析升级版》第三期', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 300, 899.00, '/course/361/lesson', '2017-10-30 14:56:51', 'bootcamp', 'da', NULL, 3, '2017-02-01 21:52:35', '2019-11-27 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (362, '《深度学习实训:人脸识别项目》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', 3, 3499.00, '/course/362/lesson', '2017-10-30 14:56:51', 'bootcamp', 'da', NULL, 4, '2017-02-01 21:52:35', '2017-04-25 21:52:53', 'chinadu');
+INSERT INTO `tb_course` VALUES (363, '零基础Python入门', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', 4214, 299.00, '/course/363/lesson', '2017-10-30 14:56:51', 'bootcamp', 'da', NULL, 5, '2017-02-01 21:52:35', '2019-11-27 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (364, '算法与数据结构中的面试与刷题', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', 608, 0.00, '/course/364/lesson', '2017-10-30 14:56:51', 'bootcamp', 'da', NULL, 6, '2017-02-01 21:52:35', '2017-04-25 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (365, '深度学习中的序列模型', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', 539, 0.00, '/course/365/lesson', '2017-10-30 14:56:51', 'bootcamp', 'da', NULL, 7, '2017-02-01 21:52:35', '2019-11-27 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (366, '《面试算法LeetCode刷题班》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', 441, 899.00, '/course/366/lesson', '2017-10-30 14:56:51', 'bootcamp', 'da', NULL, 8, '2017-02-01 21:52:35', '2017-04-25 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (367, '《BAT面试算法特训班》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', 1421, 899.00, '/course/367/lesson', '2017-10-30 14:56:51', 'bootcamp', 'da', NULL, 9, '2017-02-01 21:52:35', '2019-11-27 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (368, '《深度学习》第五期', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', 836, 899.00, '/course/368/lesson', '2017-10-30 14:56:51', 'bootcamp', 'da', NULL, 10, '2017-02-01 21:52:35', '2017-04-25 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (369, '详解动态规划与隐马尔科夫模型', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', 1387, 0.00, '/course/369/lesson', '2017-10-30 14:56:51', 'bootcamp', 'da', NULL, 2, '2017-02-01 21:52:35', '2019-11-27 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (370, '普通程序员如何转型到人工智能领域', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 1706, 0.00, '/course/370/lesson', '2017-10-30 14:56:51', 'bootcamp', 'da', NULL, 3, '2017-02-01 21:52:35', '2019-11-27 21:52:53', '小象老师');
+INSERT INTO `tb_course` VALUES (371, '《Python数据分析升级版》第三期11', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 300, 899.00, '/course/371/lesson', '2017-10-30 14:56:58', 'bootcamp', 'da', NULL, 3, '2017-02-01 21:52:35', '2019-11-27 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (372, '《深度学习实训:人脸识别项目22》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', 3, 3499.00, '/course/372/lesson', '2017-10-30 14:56:58', 'bootcamp', 'da', NULL, 4, '2017-02-01 21:52:35', '2017-04-25 21:52:53', 'chinadu');
+INSERT INTO `tb_course` VALUES (373, '零基础Python入门33', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', 4214, 299.00, '/course/373/lesson', '2017-10-30 14:56:58', 'bootcamp', 'da', NULL, 5, '2017-02-01 21:52:35', '2019-11-27 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (374, '算法与数据结构中的面试与刷题44', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', 608, 0.00, '/course/374/lesson', '2017-10-30 14:56:58', 'bootcamp', 'da', NULL, 6, '2017-02-01 21:52:35', '2017-04-25 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (375, '深度学习中的序列模型55', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', 539, 0.00, '/course/375/lesson', '2017-10-30 14:56:58', 'bootcamp', 'da', NULL, 7, '2017-02-01 21:52:35', '2019-11-27 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (376, '《面试算法LeetCode刷题班》66', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', 441, 899.00, '/course/376/lesson', '2017-10-30 14:56:58', 'bootcamp', 'da', NULL, 8, '2017-02-01 21:52:35', '2017-04-25 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (377, '《BAT面试算法特训班》77', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', 1421, 899.00, '/course/377/lesson', '2017-10-30 14:56:58', 'bootcamp', 'da', NULL, 9, '2017-02-01 21:52:35', '2017-04-25 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (378, '《深度学习》第五期88', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', 836, 899.00, '/course/378/lesson', '2017-10-30 14:56:59', 'bootcamp', 'da', NULL, 10, '2017-02-01 21:52:35', '2019-11-27 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (379, '详解动态规划与隐马尔科夫模型99', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', 1387, 0.00, '/course/379/lesson', '2017-10-30 14:56:59', 'bootcamp', 'da', NULL, 2, '2017-02-01 21:52:35', '2017-04-25 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (380, '普通程序员如何转型到人工智能领域00', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 1706, 0.00, '/course/380/lesson', '2017-10-30 14:56:59', 'bootcamp', 'da', NULL, 3, '2017-02-01 21:52:35', '2019-11-27 21:52:53', '小象老师');
+INSERT INTO `tb_course` VALUES (381, '《Python数据分析升级版》第三期21', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 300, 899.00, '/course/381/lesson', '2017-10-30 14:57:05', 'bootcamp', 'da', NULL, 3, '2017-02-01 21:52:35', '2019-11-27 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (382, '《深度学习实训:人脸识别项目》22', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', 3, 3499.00, '/course/382/lesson', '2017-10-30 14:57:05', 'bootcamp', 'da', NULL, 4, '2017-02-01 21:52:35', '2017-04-25 21:52:53', 'chinadu');
+INSERT INTO `tb_course` VALUES (383, '零基础Python入门23', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', 4214, 299.00, '/course/383/lesson', '2017-10-30 14:57:05', 'bootcamp', 'da', NULL, 5, '2017-02-01 21:52:35', '2019-11-27 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (384, '算法与数据结构中的面试与刷题24', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', 608, 0.00, '/course/384/lesson', '2017-10-30 14:57:05', 'bootcamp', 'da', NULL, 6, '2017-02-01 21:52:35', '2019-11-27 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (385, '深度学习中的序列模型25', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', 539, 0.00, '/course/385/lesson', '2017-10-30 14:57:05', 'bootcamp', 'da', NULL, 7, '2017-02-01 21:52:35', '2017-04-25 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (386, '《面试算法LeetCode刷题班》26', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', 441, 899.00, '/course/386/lesson', '2017-10-30 14:57:05', 'bootcamp', 'da', NULL, 8, '2017-02-01 21:52:35', '2017-04-25 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (387, '《BAT面试算法特训班》27', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', 1421, 899.00, '/course/387/lesson', '2017-10-30 14:57:05', 'bootcamp', 'da', NULL, 9, '2017-02-01 21:52:35', '2017-04-25 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (388, '《深度学习》第五期28', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', 836, 899.00, '/course/388/lesson', '2017-10-30 14:57:05', 'bootcamp', 'da', NULL, 10, '2017-02-01 21:52:35', '2020-07-30 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (389, '详解动态规划与隐马尔科夫模型29', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', 1387, 0.00, '/course/389/lesson', '2017-10-26 11:37:52', 'bootcamp', 'da', NULL, 2, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (390, '普通程序员如何转型到人工智能领域30', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 1706, 0.00, '/course/390/lesson', '2017-10-30 14:57:05', 'bootcamp', 'da', NULL, 3, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '小象老师');
+INSERT INTO `tb_course` VALUES (391, '《Python数据分析升级版》第三期31', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 300, 899.00, '/course/391/lesson', '2017-10-30 14:57:10', 'bootcamp', 'da', NULL, 3, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (392, '《深度学习实训:人脸识别项目32》', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-29/170733584f0c263225.jpg', 3, 3499.00, '/course/392/lesson', '2017-10-30 14:57:10', 'bootcamp', 'da', NULL, 4, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'chinadu');
+INSERT INTO `tb_course` VALUES (393, '零基础Python入门33', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-15/12132446af11122547.jpg', 4214, 299.00, '/course/393/lesson', '2017-10-30 14:57:10', 'bootcamp', 'da', NULL, 5, '2017-02-01 21:52:35', '2017-10-28 21:52:53', 'Robin_TY');
+INSERT INTO `tb_course` VALUES (394, '算法与数据结构中的面试与刷题34', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1104408ceb91095616.png', 608, 0.00, '/course/394/lesson', '2017-10-30 14:57:10', 'bootcamp', 'da', NULL, 6, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (395, '深度学习中的序列模型35', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-08/1014179e8cd3723869.png', 539, 0.00, '/course/395/lesson', '2017-10-30 14:57:10', 'bootcamp', 'da', NULL, 7, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (396, '《面试算法LeetCode刷题班》36', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/182946aa4ccb181857.png', 441, 899.00, '/course/396/lesson', '2017-10-30 14:57:10', 'bootcamp', 'da', NULL, 8, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '林沐');
+INSERT INTO `tb_course` VALUES (397, '《BAT面试算法特训班》37', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-19/111952817250604894.png', 1421, 899.00, '/course/397/lesson', '2017-10-30 14:57:10', 'bootcamp', 'da', NULL, 9, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (398, '《深度学习》第五期38', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/09-18/17282267bc4f677912.png', 836, 899.00, '/course/398/lesson', '2017-10-30 14:57:10', 'bootcamp', 'da', NULL, 10, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '戎雪健');
+INSERT INTO `tb_course` VALUES (399, '详解动态规划与隐马尔科夫模型39', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-28/100310ebad90985357.png', 1387, 0.00, '/course/399/lesson', '2017-10-26 11:37:52', 'bootcamp', 'da', NULL, 2, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '邹博');
+INSERT INTO `tb_course` VALUES (400, '普通程序员如何转型到人工智能领域40', 'http://scb1a9q0-sb.qiqiuyun.net/files/course/2017/08-20/151315bcfcb9800909.png', 1706, 0.00, '/course/400/lesson', '2017-10-30 14:57:10', 'bootcamp', 'da', NULL, 3, '2017-02-01 21:52:35', '2017-10-28 21:52:53', '小象老师');
+COMMIT;
-- ----------------------------
-- Table structure for tb_course_detail
@@ -457,406 +591,408 @@ CREATE TABLE `tb_course_detail` (
-- ----------------------------
-- Records of tb_course_detail
-- ----------------------------
-INSERT INTO `tb_course_detail` VALUES ('1', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。
\r\n', '测试课程目录', '测试课程须知', '1', '2017-10-26 14:48:26');
-INSERT INTO `tb_course_detail` VALUES ('2', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '第三方是', '水电费但是', '2', '2017-10-26 14:48:26');
-INSERT INTO `tb_course_detail` VALUES ('3', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '3', '2017-10-26 14:48:26');
-INSERT INTO `tb_course_detail` VALUES ('4', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '444', '测试课程须知', '4', '2017-10-26 14:48:26');
-INSERT INTO `tb_course_detail` VALUES ('5', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '444', '测试课程须知', '5', '2017-10-26 14:48:26');
-INSERT INTO `tb_course_detail` VALUES ('6', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '444', '测试课程须知', '6', '2017-10-26 14:48:26');
-INSERT INTO `tb_course_detail` VALUES ('7', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '7', '2017-10-26 14:48:26');
-INSERT INTO `tb_course_detail` VALUES ('8', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '8', '2017-10-26 14:48:26');
-INSERT INTO `tb_course_detail` VALUES ('9', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '9', '2017-10-26 14:48:26');
-INSERT INTO `tb_course_detail` VALUES ('10', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '10', '2017-10-26 14:48:26');
-INSERT INTO `tb_course_detail` VALUES ('11', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '11', '2017-10-26 14:48:26');
-INSERT INTO `tb_course_detail` VALUES ('12', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '12', '2017-10-26 14:48:27');
-INSERT INTO `tb_course_detail` VALUES ('13', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '13', '2017-10-26 14:48:27');
-INSERT INTO `tb_course_detail` VALUES ('14', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '14', '2017-10-26 14:48:27');
-INSERT INTO `tb_course_detail` VALUES ('15', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '15', '2017-10-26 14:48:27');
-INSERT INTO `tb_course_detail` VALUES ('16', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '16', '2017-10-26 14:48:27');
-INSERT INTO `tb_course_detail` VALUES ('17', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '17', '2017-10-26 14:48:27');
-INSERT INTO `tb_course_detail` VALUES ('18', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '18', '2017-10-26 14:48:27');
-INSERT INTO `tb_course_detail` VALUES ('19', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '19', '2017-10-26 14:48:27');
-INSERT INTO `tb_course_detail` VALUES ('20', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '20', '2017-10-26 14:48:27');
-INSERT INTO `tb_course_detail` VALUES ('21', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '21', '2017-10-26 14:48:27');
-INSERT INTO `tb_course_detail` VALUES ('22', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '22', '2017-10-26 14:48:27');
-INSERT INTO `tb_course_detail` VALUES ('23', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '23', '2017-10-26 14:48:27');
-INSERT INTO `tb_course_detail` VALUES ('24', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '24', '2017-10-26 14:48:27');
-INSERT INTO `tb_course_detail` VALUES ('25', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '25', '2017-10-26 14:48:27');
-INSERT INTO `tb_course_detail` VALUES ('26', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '26', '2017-10-26 14:48:27');
-INSERT INTO `tb_course_detail` VALUES ('27', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '27', '2017-10-26 14:48:27');
-INSERT INTO `tb_course_detail` VALUES ('28', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '28', '2017-10-26 14:48:27');
-INSERT INTO `tb_course_detail` VALUES ('29', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '29', '2017-10-26 14:48:27');
-INSERT INTO `tb_course_detail` VALUES ('30', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '30', '2017-10-26 14:48:27');
-INSERT INTO `tb_course_detail` VALUES ('31', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '31', '2017-10-26 14:48:27');
-INSERT INTO `tb_course_detail` VALUES ('32', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '32', '2017-10-26 14:48:27');
-INSERT INTO `tb_course_detail` VALUES ('33', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '33', '2017-10-26 14:48:27');
-INSERT INTO `tb_course_detail` VALUES ('34', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '34', '2017-10-26 14:48:27');
-INSERT INTO `tb_course_detail` VALUES ('35', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '35', '2017-10-26 14:48:28');
-INSERT INTO `tb_course_detail` VALUES ('36', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '36', '2017-10-26 14:48:28');
-INSERT INTO `tb_course_detail` VALUES ('37', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '37', '2017-10-26 14:48:28');
-INSERT INTO `tb_course_detail` VALUES ('38', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '38', '2017-10-26 14:48:28');
-INSERT INTO `tb_course_detail` VALUES ('39', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '39', '2017-10-26 14:48:28');
-INSERT INTO `tb_course_detail` VALUES ('40', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '40', '2017-10-26 14:48:28');
-INSERT INTO `tb_course_detail` VALUES ('41', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '41', '2017-10-26 14:48:28');
-INSERT INTO `tb_course_detail` VALUES ('42', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '42', '2017-10-26 14:48:28');
-INSERT INTO `tb_course_detail` VALUES ('43', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '43', '2017-10-26 14:48:28');
-INSERT INTO `tb_course_detail` VALUES ('44', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '44', '2017-10-26 14:48:28');
-INSERT INTO `tb_course_detail` VALUES ('45', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '45', '2017-10-26 14:48:28');
-INSERT INTO `tb_course_detail` VALUES ('46', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '46', '2017-10-26 14:48:28');
-INSERT INTO `tb_course_detail` VALUES ('47', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '47', '2017-10-26 14:48:28');
-INSERT INTO `tb_course_detail` VALUES ('48', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '48', '2017-10-26 14:48:28');
-INSERT INTO `tb_course_detail` VALUES ('49', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '49', '2017-10-26 14:48:28');
-INSERT INTO `tb_course_detail` VALUES ('50', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '50', '2017-10-26 14:48:28');
-INSERT INTO `tb_course_detail` VALUES ('51', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '51', '2017-10-26 14:48:28');
-INSERT INTO `tb_course_detail` VALUES ('52', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '52', '2017-10-26 14:48:28');
-INSERT INTO `tb_course_detail` VALUES ('53', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '53', '2017-10-26 14:48:28');
-INSERT INTO `tb_course_detail` VALUES ('54', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '54', '2017-10-26 14:48:28');
-INSERT INTO `tb_course_detail` VALUES ('55', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '55', '2017-10-26 14:48:28');
-INSERT INTO `tb_course_detail` VALUES ('56', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '56', '2017-10-26 14:48:28');
-INSERT INTO `tb_course_detail` VALUES ('57', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '57', '2017-10-26 14:48:28');
-INSERT INTO `tb_course_detail` VALUES ('58', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '58', '2017-10-26 14:48:28');
-INSERT INTO `tb_course_detail` VALUES ('59', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '59', '2017-10-26 14:48:28');
-INSERT INTO `tb_course_detail` VALUES ('60', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '60', '2017-10-26 14:48:28');
-INSERT INTO `tb_course_detail` VALUES ('61', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '61', '2017-10-26 14:48:28');
-INSERT INTO `tb_course_detail` VALUES ('62', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '62', '2017-10-26 14:48:28');
-INSERT INTO `tb_course_detail` VALUES ('63', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '63', '2017-10-26 14:48:28');
-INSERT INTO `tb_course_detail` VALUES ('64', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '64', '2017-10-26 14:48:28');
-INSERT INTO `tb_course_detail` VALUES ('65', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '65', '2017-10-26 14:48:28');
-INSERT INTO `tb_course_detail` VALUES ('66', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '66', '2017-10-26 14:48:28');
-INSERT INTO `tb_course_detail` VALUES ('67', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '67', '2017-10-26 14:48:29');
-INSERT INTO `tb_course_detail` VALUES ('68', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '68', '2017-10-26 14:48:29');
-INSERT INTO `tb_course_detail` VALUES ('69', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '69', '2017-10-26 14:48:29');
-INSERT INTO `tb_course_detail` VALUES ('70', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '70', '2017-10-26 14:48:29');
-INSERT INTO `tb_course_detail` VALUES ('71', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '71', '2017-10-26 14:48:29');
-INSERT INTO `tb_course_detail` VALUES ('72', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '72', '2017-10-26 14:48:29');
-INSERT INTO `tb_course_detail` VALUES ('73', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '73', '2017-10-26 14:48:29');
-INSERT INTO `tb_course_detail` VALUES ('74', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '74', '2017-10-26 14:48:29');
-INSERT INTO `tb_course_detail` VALUES ('75', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '75', '2017-10-26 14:48:29');
-INSERT INTO `tb_course_detail` VALUES ('76', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '76', '2017-10-26 14:48:29');
-INSERT INTO `tb_course_detail` VALUES ('77', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '77', '2017-10-26 14:48:29');
-INSERT INTO `tb_course_detail` VALUES ('78', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '78', '2017-10-26 14:48:29');
-INSERT INTO `tb_course_detail` VALUES ('79', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '79', '2017-10-26 14:48:29');
-INSERT INTO `tb_course_detail` VALUES ('80', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '80', '2017-10-26 14:48:29');
-INSERT INTO `tb_course_detail` VALUES ('81', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '81', '2017-10-26 14:48:29');
-INSERT INTO `tb_course_detail` VALUES ('82', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '82', '2017-10-26 14:48:29');
-INSERT INTO `tb_course_detail` VALUES ('83', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '83', '2017-10-26 14:48:29');
-INSERT INTO `tb_course_detail` VALUES ('84', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '84', '2017-10-26 14:48:29');
-INSERT INTO `tb_course_detail` VALUES ('85', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '85', '2017-10-26 14:48:29');
-INSERT INTO `tb_course_detail` VALUES ('86', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '86', '2017-10-26 14:48:29');
-INSERT INTO `tb_course_detail` VALUES ('87', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '87', '2017-10-26 14:48:29');
-INSERT INTO `tb_course_detail` VALUES ('88', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '88', '2017-10-26 14:48:29');
-INSERT INTO `tb_course_detail` VALUES ('89', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '89', '2017-10-26 14:48:29');
-INSERT INTO `tb_course_detail` VALUES ('90', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '90', '2017-10-26 14:48:29');
-INSERT INTO `tb_course_detail` VALUES ('91', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '91', '2017-10-26 14:48:29');
-INSERT INTO `tb_course_detail` VALUES ('92', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '92', '2017-10-26 14:48:29');
-INSERT INTO `tb_course_detail` VALUES ('93', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '93', '2017-10-26 14:48:29');
-INSERT INTO `tb_course_detail` VALUES ('94', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '94', '2017-10-26 14:48:29');
-INSERT INTO `tb_course_detail` VALUES ('95', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '95', '2017-10-26 14:48:30');
-INSERT INTO `tb_course_detail` VALUES ('96', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '96', '2017-10-26 14:48:30');
-INSERT INTO `tb_course_detail` VALUES ('97', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '97', '2017-10-26 14:48:30');
-INSERT INTO `tb_course_detail` VALUES ('98', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '98', '2017-10-26 14:48:30');
-INSERT INTO `tb_course_detail` VALUES ('99', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '99', '2017-10-26 14:48:30');
-INSERT INTO `tb_course_detail` VALUES ('100', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '100', '2017-10-26 14:48:30');
-INSERT INTO `tb_course_detail` VALUES ('101', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '101', '2017-10-26 14:48:30');
-INSERT INTO `tb_course_detail` VALUES ('102', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '102', '2017-10-26 14:48:30');
-INSERT INTO `tb_course_detail` VALUES ('103', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '103', '2017-10-26 14:48:30');
-INSERT INTO `tb_course_detail` VALUES ('104', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '104', '2017-10-26 14:48:30');
-INSERT INTO `tb_course_detail` VALUES ('105', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '105', '2017-10-26 14:48:30');
-INSERT INTO `tb_course_detail` VALUES ('106', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '106', '2017-10-26 14:48:30');
-INSERT INTO `tb_course_detail` VALUES ('107', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '107', '2017-10-26 14:48:30');
-INSERT INTO `tb_course_detail` VALUES ('108', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '108', '2017-10-26 14:48:30');
-INSERT INTO `tb_course_detail` VALUES ('109', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '109', '2017-10-26 14:48:30');
-INSERT INTO `tb_course_detail` VALUES ('110', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '110', '2017-10-26 14:48:30');
-INSERT INTO `tb_course_detail` VALUES ('111', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '111', '2017-10-26 14:48:30');
-INSERT INTO `tb_course_detail` VALUES ('112', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '112', '2017-10-26 14:48:30');
-INSERT INTO `tb_course_detail` VALUES ('113', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '113', '2017-10-26 14:48:30');
-INSERT INTO `tb_course_detail` VALUES ('114', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '114', '2017-10-26 14:48:30');
-INSERT INTO `tb_course_detail` VALUES ('115', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '115', '2017-10-26 14:48:30');
-INSERT INTO `tb_course_detail` VALUES ('116', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '116', '2017-10-26 14:48:30');
-INSERT INTO `tb_course_detail` VALUES ('117', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '117', '2017-10-26 14:48:30');
-INSERT INTO `tb_course_detail` VALUES ('118', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '118', '2017-10-26 14:48:30');
-INSERT INTO `tb_course_detail` VALUES ('119', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '119', '2017-10-26 14:48:30');
-INSERT INTO `tb_course_detail` VALUES ('120', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '120', '2017-10-26 14:48:30');
-INSERT INTO `tb_course_detail` VALUES ('121', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '121', '2017-10-26 14:48:31');
-INSERT INTO `tb_course_detail` VALUES ('122', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '122', '2017-10-26 14:48:31');
-INSERT INTO `tb_course_detail` VALUES ('123', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '123', '2017-10-26 14:48:31');
-INSERT INTO `tb_course_detail` VALUES ('124', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '124', '2017-10-26 14:48:31');
-INSERT INTO `tb_course_detail` VALUES ('125', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '125', '2017-10-26 14:48:31');
-INSERT INTO `tb_course_detail` VALUES ('126', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '126', '2017-10-26 14:48:31');
-INSERT INTO `tb_course_detail` VALUES ('127', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '127', '2017-10-26 14:48:31');
-INSERT INTO `tb_course_detail` VALUES ('128', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '128', '2017-10-26 14:48:31');
-INSERT INTO `tb_course_detail` VALUES ('129', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '129', '2017-10-26 14:48:31');
-INSERT INTO `tb_course_detail` VALUES ('130', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '130', '2017-10-26 14:48:31');
-INSERT INTO `tb_course_detail` VALUES ('131', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '131', '2017-10-26 14:48:31');
-INSERT INTO `tb_course_detail` VALUES ('132', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '132', '2017-10-26 14:48:31');
-INSERT INTO `tb_course_detail` VALUES ('133', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '133', '2017-10-26 14:48:31');
-INSERT INTO `tb_course_detail` VALUES ('134', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '134', '2017-10-26 14:48:31');
-INSERT INTO `tb_course_detail` VALUES ('135', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '135', '2017-10-26 14:48:31');
-INSERT INTO `tb_course_detail` VALUES ('136', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '136', '2017-10-26 14:48:31');
-INSERT INTO `tb_course_detail` VALUES ('137', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '137', '2017-10-26 14:48:31');
-INSERT INTO `tb_course_detail` VALUES ('138', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '138', '2017-10-26 14:48:31');
-INSERT INTO `tb_course_detail` VALUES ('139', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '139', '2017-10-26 14:48:31');
-INSERT INTO `tb_course_detail` VALUES ('140', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '140', '2017-10-26 14:48:31');
-INSERT INTO `tb_course_detail` VALUES ('141', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '141', '2017-10-26 14:48:31');
-INSERT INTO `tb_course_detail` VALUES ('142', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '142', '2017-10-26 14:48:31');
-INSERT INTO `tb_course_detail` VALUES ('143', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '143', '2017-10-26 14:48:32');
-INSERT INTO `tb_course_detail` VALUES ('144', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '144', '2017-10-26 14:48:32');
-INSERT INTO `tb_course_detail` VALUES ('145', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '145', '2017-10-26 14:48:32');
-INSERT INTO `tb_course_detail` VALUES ('146', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '146', '2017-10-26 14:48:32');
-INSERT INTO `tb_course_detail` VALUES ('147', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '147', '2017-10-26 14:48:32');
-INSERT INTO `tb_course_detail` VALUES ('148', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '148', '2017-10-26 14:48:32');
-INSERT INTO `tb_course_detail` VALUES ('149', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '149', '2017-10-26 14:48:32');
-INSERT INTO `tb_course_detail` VALUES ('150', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '150', '2017-10-26 14:48:32');
-INSERT INTO `tb_course_detail` VALUES ('151', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '151', '2017-10-26 14:48:32');
-INSERT INTO `tb_course_detail` VALUES ('152', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '152', '2017-10-26 14:48:32');
-INSERT INTO `tb_course_detail` VALUES ('153', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '153', '2017-10-26 14:48:32');
-INSERT INTO `tb_course_detail` VALUES ('154', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '154', '2017-10-26 14:48:32');
-INSERT INTO `tb_course_detail` VALUES ('155', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '155', '2017-10-26 14:48:32');
-INSERT INTO `tb_course_detail` VALUES ('156', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '156', '2017-10-26 14:48:32');
-INSERT INTO `tb_course_detail` VALUES ('157', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '157', '2017-10-26 14:48:32');
-INSERT INTO `tb_course_detail` VALUES ('158', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '158', '2017-10-26 14:48:32');
-INSERT INTO `tb_course_detail` VALUES ('159', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '159', '2017-10-26 14:48:32');
-INSERT INTO `tb_course_detail` VALUES ('160', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '160', '2017-10-26 14:48:32');
-INSERT INTO `tb_course_detail` VALUES ('161', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '161', '2017-10-26 14:48:32');
-INSERT INTO `tb_course_detail` VALUES ('162', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '162', '2017-10-26 14:48:32');
-INSERT INTO `tb_course_detail` VALUES ('163', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '163', '2017-10-26 14:48:32');
-INSERT INTO `tb_course_detail` VALUES ('164', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '164', '2017-10-26 14:48:32');
-INSERT INTO `tb_course_detail` VALUES ('165', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '165', '2017-10-26 14:48:32');
-INSERT INTO `tb_course_detail` VALUES ('166', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '166', '2017-10-26 14:48:32');
-INSERT INTO `tb_course_detail` VALUES ('167', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '167', '2017-10-26 14:48:32');
-INSERT INTO `tb_course_detail` VALUES ('168', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '168', '2017-10-26 14:48:32');
-INSERT INTO `tb_course_detail` VALUES ('169', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '169', '2017-10-26 14:48:32');
-INSERT INTO `tb_course_detail` VALUES ('170', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '170', '2017-10-26 14:48:32');
-INSERT INTO `tb_course_detail` VALUES ('171', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '171', '2017-10-26 14:48:33');
-INSERT INTO `tb_course_detail` VALUES ('172', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '172', '2017-10-26 14:48:33');
-INSERT INTO `tb_course_detail` VALUES ('173', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '173', '2017-10-26 14:48:33');
-INSERT INTO `tb_course_detail` VALUES ('174', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '174', '2017-10-26 14:48:33');
-INSERT INTO `tb_course_detail` VALUES ('175', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '175', '2017-10-26 14:48:33');
-INSERT INTO `tb_course_detail` VALUES ('176', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '176', '2017-10-26 14:48:33');
-INSERT INTO `tb_course_detail` VALUES ('177', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '177', '2017-10-26 14:48:33');
-INSERT INTO `tb_course_detail` VALUES ('178', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '178', '2017-10-26 14:48:33');
-INSERT INTO `tb_course_detail` VALUES ('179', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '179', '2017-10-26 14:48:33');
-INSERT INTO `tb_course_detail` VALUES ('180', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '180', '2017-10-26 14:48:33');
-INSERT INTO `tb_course_detail` VALUES ('181', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '181', '2017-10-26 14:48:33');
-INSERT INTO `tb_course_detail` VALUES ('182', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '182', '2017-10-26 14:48:33');
-INSERT INTO `tb_course_detail` VALUES ('183', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '183', '2017-10-26 14:48:33');
-INSERT INTO `tb_course_detail` VALUES ('184', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '184', '2017-10-26 14:48:33');
-INSERT INTO `tb_course_detail` VALUES ('185', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '185', '2017-10-26 14:48:33');
-INSERT INTO `tb_course_detail` VALUES ('186', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '186', '2017-10-26 14:48:33');
-INSERT INTO `tb_course_detail` VALUES ('187', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '187', '2017-10-26 14:48:33');
-INSERT INTO `tb_course_detail` VALUES ('188', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '188', '2017-10-26 14:48:33');
-INSERT INTO `tb_course_detail` VALUES ('189', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '189', '2017-10-26 14:48:33');
-INSERT INTO `tb_course_detail` VALUES ('190', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '190', '2017-10-26 14:48:33');
-INSERT INTO `tb_course_detail` VALUES ('191', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '191', '2017-10-26 14:48:33');
-INSERT INTO `tb_course_detail` VALUES ('192', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '192', '2017-10-26 14:48:33');
-INSERT INTO `tb_course_detail` VALUES ('193', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '193', '2017-10-26 14:48:33');
-INSERT INTO `tb_course_detail` VALUES ('194', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '194', '2017-10-26 14:48:33');
-INSERT INTO `tb_course_detail` VALUES ('195', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '195', '2017-10-26 14:48:33');
-INSERT INTO `tb_course_detail` VALUES ('196', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '196', '2017-10-26 14:48:34');
-INSERT INTO `tb_course_detail` VALUES ('197', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '197', '2017-10-26 14:48:34');
-INSERT INTO `tb_course_detail` VALUES ('198', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '198', '2017-10-26 14:48:34');
-INSERT INTO `tb_course_detail` VALUES ('199', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '199', '2017-10-26 14:48:34');
-INSERT INTO `tb_course_detail` VALUES ('200', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '200', '2017-10-26 14:48:34');
-INSERT INTO `tb_course_detail` VALUES ('201', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '201', '2017-10-26 14:48:34');
-INSERT INTO `tb_course_detail` VALUES ('202', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '202', '2017-10-26 14:48:34');
-INSERT INTO `tb_course_detail` VALUES ('203', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '203', '2017-10-26 14:48:34');
-INSERT INTO `tb_course_detail` VALUES ('204', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '204', '2017-10-26 14:48:34');
-INSERT INTO `tb_course_detail` VALUES ('205', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '205', '2017-10-26 14:48:34');
-INSERT INTO `tb_course_detail` VALUES ('206', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '206', '2017-10-26 14:48:34');
-INSERT INTO `tb_course_detail` VALUES ('207', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '207', '2017-10-26 14:48:34');
-INSERT INTO `tb_course_detail` VALUES ('208', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '208', '2017-10-26 14:48:34');
-INSERT INTO `tb_course_detail` VALUES ('209', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '209', '2017-10-26 14:48:34');
-INSERT INTO `tb_course_detail` VALUES ('210', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '210', '2017-10-26 14:48:34');
-INSERT INTO `tb_course_detail` VALUES ('211', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '211', '2017-10-26 14:48:34');
-INSERT INTO `tb_course_detail` VALUES ('212', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '212', '2017-10-26 14:48:34');
-INSERT INTO `tb_course_detail` VALUES ('213', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '213', '2017-10-26 14:48:34');
-INSERT INTO `tb_course_detail` VALUES ('214', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '214', '2017-10-26 14:48:34');
-INSERT INTO `tb_course_detail` VALUES ('215', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '215', '2017-10-26 14:48:34');
-INSERT INTO `tb_course_detail` VALUES ('216', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '216', '2017-10-26 14:48:34');
-INSERT INTO `tb_course_detail` VALUES ('217', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '217', '2017-10-26 14:48:34');
-INSERT INTO `tb_course_detail` VALUES ('218', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '218', '2017-10-26 14:48:34');
-INSERT INTO `tb_course_detail` VALUES ('219', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '219', '2017-10-26 14:48:34');
-INSERT INTO `tb_course_detail` VALUES ('220', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '220', '2017-10-26 14:48:34');
-INSERT INTO `tb_course_detail` VALUES ('221', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '221', '2017-10-26 14:48:34');
-INSERT INTO `tb_course_detail` VALUES ('222', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '222', '2017-10-26 14:48:34');
-INSERT INTO `tb_course_detail` VALUES ('223', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '223', '2017-10-26 14:48:34');
-INSERT INTO `tb_course_detail` VALUES ('224', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '224', '2017-10-26 14:48:35');
-INSERT INTO `tb_course_detail` VALUES ('225', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '225', '2017-10-26 14:48:35');
-INSERT INTO `tb_course_detail` VALUES ('226', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '226', '2017-10-26 14:48:35');
-INSERT INTO `tb_course_detail` VALUES ('227', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '227', '2017-10-26 14:48:35');
-INSERT INTO `tb_course_detail` VALUES ('228', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '228', '2017-10-26 14:48:35');
-INSERT INTO `tb_course_detail` VALUES ('229', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '229', '2017-10-26 14:48:35');
-INSERT INTO `tb_course_detail` VALUES ('230', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '230', '2017-10-26 14:48:35');
-INSERT INTO `tb_course_detail` VALUES ('231', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '231', '2017-10-26 14:48:35');
-INSERT INTO `tb_course_detail` VALUES ('232', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '232', '2017-10-26 14:48:35');
-INSERT INTO `tb_course_detail` VALUES ('233', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '233', '2017-10-26 14:48:35');
-INSERT INTO `tb_course_detail` VALUES ('234', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '234', '2017-10-26 14:48:35');
-INSERT INTO `tb_course_detail` VALUES ('235', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '235', '2017-10-26 14:48:35');
-INSERT INTO `tb_course_detail` VALUES ('236', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '236', '2017-10-26 14:48:35');
-INSERT INTO `tb_course_detail` VALUES ('237', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '237', '2017-10-26 14:48:35');
-INSERT INTO `tb_course_detail` VALUES ('238', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '238', '2017-10-26 14:48:35');
-INSERT INTO `tb_course_detail` VALUES ('239', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '239', '2017-10-26 14:48:35');
-INSERT INTO `tb_course_detail` VALUES ('240', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '240', '2017-10-26 14:48:35');
-INSERT INTO `tb_course_detail` VALUES ('241', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '241', '2017-10-26 14:48:35');
-INSERT INTO `tb_course_detail` VALUES ('242', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '242', '2017-10-26 14:48:35');
-INSERT INTO `tb_course_detail` VALUES ('243', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '243', '2017-10-26 14:48:35');
-INSERT INTO `tb_course_detail` VALUES ('244', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '244', '2017-10-26 14:48:35');
-INSERT INTO `tb_course_detail` VALUES ('245', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '245', '2017-10-26 14:48:35');
-INSERT INTO `tb_course_detail` VALUES ('246', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '246', '2017-10-26 14:48:35');
-INSERT INTO `tb_course_detail` VALUES ('247', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '247', '2017-10-26 14:48:35');
-INSERT INTO `tb_course_detail` VALUES ('248', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '248', '2017-10-26 14:48:35');
-INSERT INTO `tb_course_detail` VALUES ('249', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '249', '2017-10-26 14:48:35');
-INSERT INTO `tb_course_detail` VALUES ('250', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '250', '2017-10-26 14:48:35');
-INSERT INTO `tb_course_detail` VALUES ('251', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '251', '2017-10-26 14:48:36');
-INSERT INTO `tb_course_detail` VALUES ('252', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '252', '2017-10-26 14:48:36');
-INSERT INTO `tb_course_detail` VALUES ('253', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '253', '2017-10-26 14:48:36');
-INSERT INTO `tb_course_detail` VALUES ('254', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '254', '2017-10-26 14:48:36');
-INSERT INTO `tb_course_detail` VALUES ('255', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '255', '2017-10-26 14:48:36');
-INSERT INTO `tb_course_detail` VALUES ('256', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '256', '2017-10-26 14:48:36');
-INSERT INTO `tb_course_detail` VALUES ('257', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '257', '2017-10-26 14:48:36');
-INSERT INTO `tb_course_detail` VALUES ('258', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '258', '2017-10-26 14:48:36');
-INSERT INTO `tb_course_detail` VALUES ('259', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '259', '2017-10-26 14:48:36');
-INSERT INTO `tb_course_detail` VALUES ('260', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '260', '2017-10-26 14:48:36');
-INSERT INTO `tb_course_detail` VALUES ('261', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '261', '2017-10-26 14:48:36');
-INSERT INTO `tb_course_detail` VALUES ('262', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '262', '2017-10-26 14:48:36');
-INSERT INTO `tb_course_detail` VALUES ('263', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '263', '2017-10-26 14:48:36');
-INSERT INTO `tb_course_detail` VALUES ('264', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '264', '2017-10-26 14:48:36');
-INSERT INTO `tb_course_detail` VALUES ('265', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '265', '2017-10-26 14:48:36');
-INSERT INTO `tb_course_detail` VALUES ('266', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '266', '2017-10-26 14:48:36');
-INSERT INTO `tb_course_detail` VALUES ('267', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '267', '2017-10-26 14:48:36');
-INSERT INTO `tb_course_detail` VALUES ('268', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '268', '2017-10-26 14:48:36');
-INSERT INTO `tb_course_detail` VALUES ('269', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '269', '2017-10-26 14:48:36');
-INSERT INTO `tb_course_detail` VALUES ('270', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '270', '2017-10-26 14:48:36');
-INSERT INTO `tb_course_detail` VALUES ('271', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '271', '2017-10-26 14:48:36');
-INSERT INTO `tb_course_detail` VALUES ('272', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '272', '2017-10-26 14:48:36');
-INSERT INTO `tb_course_detail` VALUES ('273', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '273', '2017-10-26 14:48:36');
-INSERT INTO `tb_course_detail` VALUES ('274', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '274', '2017-10-26 14:48:36');
-INSERT INTO `tb_course_detail` VALUES ('275', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '275', '2017-10-26 14:48:36');
-INSERT INTO `tb_course_detail` VALUES ('276', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '276', '2017-10-26 14:48:36');
-INSERT INTO `tb_course_detail` VALUES ('277', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '277', '2017-10-26 14:48:36');
-INSERT INTO `tb_course_detail` VALUES ('278', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '278', '2017-10-26 14:48:36');
-INSERT INTO `tb_course_detail` VALUES ('279', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '279', '2017-10-26 14:48:36');
-INSERT INTO `tb_course_detail` VALUES ('280', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '280', '2017-10-26 14:48:37');
-INSERT INTO `tb_course_detail` VALUES ('281', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '281', '2017-10-26 14:48:37');
-INSERT INTO `tb_course_detail` VALUES ('282', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '282', '2017-10-26 14:48:37');
-INSERT INTO `tb_course_detail` VALUES ('283', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '283', '2017-10-26 14:48:37');
-INSERT INTO `tb_course_detail` VALUES ('284', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '284', '2017-10-26 14:48:37');
-INSERT INTO `tb_course_detail` VALUES ('285', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '285', '2017-10-26 14:48:37');
-INSERT INTO `tb_course_detail` VALUES ('286', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '286', '2017-10-26 14:48:37');
-INSERT INTO `tb_course_detail` VALUES ('287', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '287', '2017-10-26 14:48:37');
-INSERT INTO `tb_course_detail` VALUES ('288', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '288', '2017-10-26 14:48:37');
-INSERT INTO `tb_course_detail` VALUES ('289', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '289', '2017-10-26 14:48:37');
-INSERT INTO `tb_course_detail` VALUES ('290', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '290', '2017-10-26 14:48:37');
-INSERT INTO `tb_course_detail` VALUES ('291', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '291', '2017-10-26 14:48:37');
-INSERT INTO `tb_course_detail` VALUES ('292', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '292', '2017-10-26 14:48:37');
-INSERT INTO `tb_course_detail` VALUES ('293', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '293', '2017-10-26 14:48:37');
-INSERT INTO `tb_course_detail` VALUES ('294', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '294', '2017-10-26 14:48:37');
-INSERT INTO `tb_course_detail` VALUES ('295', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '295', '2017-10-26 14:48:37');
-INSERT INTO `tb_course_detail` VALUES ('296', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '296', '2017-10-26 14:48:37');
-INSERT INTO `tb_course_detail` VALUES ('297', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '297', '2017-10-26 14:48:37');
-INSERT INTO `tb_course_detail` VALUES ('298', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '298', '2017-10-26 14:48:37');
-INSERT INTO `tb_course_detail` VALUES ('299', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '299', '2017-10-26 14:48:37');
-INSERT INTO `tb_course_detail` VALUES ('300', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '300', '2017-10-26 14:48:37');
-INSERT INTO `tb_course_detail` VALUES ('301', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '301', '2017-10-26 14:48:37');
-INSERT INTO `tb_course_detail` VALUES ('302', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '302', '2017-10-26 14:48:37');
-INSERT INTO `tb_course_detail` VALUES ('303', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '303', '2017-10-26 14:48:38');
-INSERT INTO `tb_course_detail` VALUES ('304', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '304', '2017-10-26 14:48:38');
-INSERT INTO `tb_course_detail` VALUES ('305', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '305', '2017-10-26 14:48:38');
-INSERT INTO `tb_course_detail` VALUES ('306', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '306', '2017-10-26 14:48:38');
-INSERT INTO `tb_course_detail` VALUES ('307', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '307', '2017-10-26 14:48:38');
-INSERT INTO `tb_course_detail` VALUES ('308', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '308', '2017-10-26 14:48:38');
-INSERT INTO `tb_course_detail` VALUES ('309', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '309', '2017-10-26 14:48:38');
-INSERT INTO `tb_course_detail` VALUES ('310', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '310', '2017-10-26 14:48:38');
-INSERT INTO `tb_course_detail` VALUES ('311', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '311', '2017-10-26 14:48:38');
-INSERT INTO `tb_course_detail` VALUES ('312', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '312', '2017-10-26 14:48:38');
-INSERT INTO `tb_course_detail` VALUES ('313', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '313', '2017-10-26 14:48:38');
-INSERT INTO `tb_course_detail` VALUES ('314', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '314', '2017-10-26 14:48:38');
-INSERT INTO `tb_course_detail` VALUES ('315', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '315', '2017-10-26 14:48:38');
-INSERT INTO `tb_course_detail` VALUES ('316', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '316', '2017-10-26 14:48:38');
-INSERT INTO `tb_course_detail` VALUES ('317', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '317', '2017-10-26 14:48:38');
-INSERT INTO `tb_course_detail` VALUES ('318', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '318', '2017-10-26 14:48:38');
-INSERT INTO `tb_course_detail` VALUES ('319', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '319', '2017-10-26 14:48:38');
-INSERT INTO `tb_course_detail` VALUES ('320', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '320', '2017-10-26 14:48:38');
-INSERT INTO `tb_course_detail` VALUES ('321', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '321', '2017-10-26 14:48:38');
-INSERT INTO `tb_course_detail` VALUES ('322', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '322', '2017-10-26 14:48:38');
-INSERT INTO `tb_course_detail` VALUES ('323', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '323', '2017-10-26 14:48:38');
-INSERT INTO `tb_course_detail` VALUES ('324', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '324', '2017-10-26 14:48:38');
-INSERT INTO `tb_course_detail` VALUES ('325', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '325', '2017-10-26 14:48:38');
-INSERT INTO `tb_course_detail` VALUES ('326', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '326', '2017-10-26 14:48:38');
-INSERT INTO `tb_course_detail` VALUES ('327', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '327', '2017-10-26 14:48:38');
-INSERT INTO `tb_course_detail` VALUES ('328', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '328', '2017-10-26 14:48:38');
-INSERT INTO `tb_course_detail` VALUES ('329', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '329', '2017-10-26 14:48:38');
-INSERT INTO `tb_course_detail` VALUES ('330', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '330', '2017-10-26 14:48:38');
-INSERT INTO `tb_course_detail` VALUES ('331', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '331', '2017-10-26 14:48:38');
-INSERT INTO `tb_course_detail` VALUES ('332', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '332', '2017-10-26 14:48:39');
-INSERT INTO `tb_course_detail` VALUES ('333', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '333', '2017-10-26 14:48:39');
-INSERT INTO `tb_course_detail` VALUES ('334', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '334', '2017-10-26 14:48:39');
-INSERT INTO `tb_course_detail` VALUES ('335', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '335', '2017-10-26 14:48:39');
-INSERT INTO `tb_course_detail` VALUES ('336', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '336', '2017-10-26 14:48:39');
-INSERT INTO `tb_course_detail` VALUES ('337', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '337', '2017-10-26 14:48:39');
-INSERT INTO `tb_course_detail` VALUES ('338', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '338', '2017-10-26 14:48:39');
-INSERT INTO `tb_course_detail` VALUES ('339', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '339', '2017-10-26 14:48:39');
-INSERT INTO `tb_course_detail` VALUES ('340', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '340', '2017-10-26 14:48:39');
-INSERT INTO `tb_course_detail` VALUES ('341', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '341', '2017-10-26 14:48:39');
-INSERT INTO `tb_course_detail` VALUES ('342', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '342', '2017-10-26 14:48:39');
-INSERT INTO `tb_course_detail` VALUES ('343', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '343', '2017-10-26 14:48:39');
-INSERT INTO `tb_course_detail` VALUES ('344', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '344', '2017-10-26 14:48:39');
-INSERT INTO `tb_course_detail` VALUES ('345', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '345', '2017-10-26 14:48:39');
-INSERT INTO `tb_course_detail` VALUES ('346', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '346', '2017-10-26 14:48:39');
-INSERT INTO `tb_course_detail` VALUES ('347', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '347', '2017-10-26 14:48:39');
-INSERT INTO `tb_course_detail` VALUES ('348', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '348', '2017-10-26 14:48:39');
-INSERT INTO `tb_course_detail` VALUES ('349', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '349', '2017-10-26 14:48:39');
-INSERT INTO `tb_course_detail` VALUES ('350', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '350', '2017-10-26 14:48:39');
-INSERT INTO `tb_course_detail` VALUES ('351', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '351', '2017-10-26 14:48:39');
-INSERT INTO `tb_course_detail` VALUES ('352', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '352', '2017-10-26 14:48:39');
-INSERT INTO `tb_course_detail` VALUES ('353', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '353', '2017-10-26 14:48:39');
-INSERT INTO `tb_course_detail` VALUES ('354', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '354', '2017-10-26 14:48:39');
-INSERT INTO `tb_course_detail` VALUES ('355', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '355', '2017-10-26 14:48:39');
-INSERT INTO `tb_course_detail` VALUES ('356', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '356', '2017-10-26 14:48:39');
-INSERT INTO `tb_course_detail` VALUES ('357', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '357', '2017-10-26 14:48:39');
-INSERT INTO `tb_course_detail` VALUES ('358', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '358', '2017-10-26 14:48:40');
-INSERT INTO `tb_course_detail` VALUES ('359', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '359', '2017-10-26 14:48:40');
-INSERT INTO `tb_course_detail` VALUES ('360', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '360', '2017-10-26 14:48:40');
-INSERT INTO `tb_course_detail` VALUES ('361', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '361', '2017-10-26 14:48:40');
-INSERT INTO `tb_course_detail` VALUES ('362', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '362', '2017-10-26 14:48:40');
-INSERT INTO `tb_course_detail` VALUES ('363', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '363', '2017-10-26 14:48:40');
-INSERT INTO `tb_course_detail` VALUES ('364', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '364', '2017-10-26 14:48:40');
-INSERT INTO `tb_course_detail` VALUES ('365', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '365', '2017-10-26 14:48:40');
-INSERT INTO `tb_course_detail` VALUES ('366', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '366', '2017-10-26 14:48:40');
-INSERT INTO `tb_course_detail` VALUES ('367', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '367', '2017-10-26 14:48:40');
-INSERT INTO `tb_course_detail` VALUES ('368', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '368', '2017-10-26 14:48:40');
-INSERT INTO `tb_course_detail` VALUES ('369', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '369', '2017-10-26 14:48:40');
-INSERT INTO `tb_course_detail` VALUES ('370', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '370', '2017-10-26 14:48:40');
-INSERT INTO `tb_course_detail` VALUES ('371', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '371', '2017-10-26 14:48:40');
-INSERT INTO `tb_course_detail` VALUES ('372', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '372', '2017-10-26 14:48:40');
-INSERT INTO `tb_course_detail` VALUES ('373', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '373', '2017-10-26 14:48:40');
-INSERT INTO `tb_course_detail` VALUES ('374', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '374', '2017-10-26 14:48:40');
-INSERT INTO `tb_course_detail` VALUES ('375', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '375', '2017-10-26 14:48:40');
-INSERT INTO `tb_course_detail` VALUES ('376', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '376', '2017-10-26 14:48:40');
-INSERT INTO `tb_course_detail` VALUES ('377', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '377', '2017-10-26 14:48:40');
-INSERT INTO `tb_course_detail` VALUES ('378', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '378', '2017-10-26 14:48:40');
-INSERT INTO `tb_course_detail` VALUES ('379', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '379', '2017-10-26 14:48:40');
-INSERT INTO `tb_course_detail` VALUES ('380', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '380', '2017-10-26 14:48:40');
-INSERT INTO `tb_course_detail` VALUES ('381', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '381', '2017-10-26 14:48:40');
-INSERT INTO `tb_course_detail` VALUES ('382', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '382', '2017-10-26 14:48:40');
-INSERT INTO `tb_course_detail` VALUES ('383', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '383', '2017-10-26 14:48:40');
-INSERT INTO `tb_course_detail` VALUES ('384', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '384', '2017-10-26 14:48:40');
-INSERT INTO `tb_course_detail` VALUES ('385', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '385', '2017-10-26 14:48:40');
-INSERT INTO `tb_course_detail` VALUES ('386', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '386', '2017-10-26 14:48:40');
-INSERT INTO `tb_course_detail` VALUES ('387', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '387', '2017-10-26 14:48:40');
-INSERT INTO `tb_course_detail` VALUES ('388', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '388', '2017-10-26 14:48:41');
-INSERT INTO `tb_course_detail` VALUES ('389', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '389', '2017-10-26 14:48:41');
-INSERT INTO `tb_course_detail` VALUES ('390', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '390', '2017-10-26 14:48:41');
-INSERT INTO `tb_course_detail` VALUES ('391', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '391', '2017-10-26 14:48:41');
-INSERT INTO `tb_course_detail` VALUES ('392', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '392', '2017-10-26 14:48:41');
-INSERT INTO `tb_course_detail` VALUES ('393', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '393', '2017-10-26 14:48:41');
-INSERT INTO `tb_course_detail` VALUES ('394', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '394', '2017-10-26 14:48:41');
-INSERT INTO `tb_course_detail` VALUES ('395', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '395', '2017-10-26 14:48:41');
-INSERT INTO `tb_course_detail` VALUES ('396', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '396', '2017-10-26 14:48:41');
-INSERT INTO `tb_course_detail` VALUES ('397', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '397', '2017-10-26 14:48:41');
-INSERT INTO `tb_course_detail` VALUES ('398', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '398', '2017-10-26 14:48:41');
-INSERT INTO `tb_course_detail` VALUES ('399', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '399', '2017-10-26 14:48:41');
-INSERT INTO `tb_course_detail` VALUES ('400', 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', '400', '2017-10-26 14:48:41');
+BEGIN;
+INSERT INTO `tb_course_detail` VALUES (1, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 1, '2017-10-26 14:48:26');
+INSERT INTO `tb_course_detail` VALUES (2, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '第三方是', '水电费但是', 2, '2017-10-26 14:48:26');
+INSERT INTO `tb_course_detail` VALUES (3, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 3, '2017-10-26 14:48:26');
+INSERT INTO `tb_course_detail` VALUES (4, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '444', '测试课程须知', 4, '2017-10-26 14:48:26');
+INSERT INTO `tb_course_detail` VALUES (5, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '444', '测试课程须知', 5, '2017-10-26 14:48:26');
+INSERT INTO `tb_course_detail` VALUES (6, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '444', '测试课程须知', 6, '2017-10-26 14:48:26');
+INSERT INTO `tb_course_detail` VALUES (7, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 7, '2017-10-26 14:48:26');
+INSERT INTO `tb_course_detail` VALUES (8, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 8, '2017-10-26 14:48:26');
+INSERT INTO `tb_course_detail` VALUES (9, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 9, '2017-10-26 14:48:26');
+INSERT INTO `tb_course_detail` VALUES (10, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 10, '2017-10-26 14:48:26');
+INSERT INTO `tb_course_detail` VALUES (11, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 11, '2017-10-26 14:48:26');
+INSERT INTO `tb_course_detail` VALUES (12, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 12, '2017-10-26 14:48:27');
+INSERT INTO `tb_course_detail` VALUES (13, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 13, '2017-10-26 14:48:27');
+INSERT INTO `tb_course_detail` VALUES (14, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 14, '2017-10-26 14:48:27');
+INSERT INTO `tb_course_detail` VALUES (15, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 15, '2017-10-26 14:48:27');
+INSERT INTO `tb_course_detail` VALUES (16, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 16, '2017-10-26 14:48:27');
+INSERT INTO `tb_course_detail` VALUES (17, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 17, '2017-10-26 14:48:27');
+INSERT INTO `tb_course_detail` VALUES (18, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 18, '2017-10-26 14:48:27');
+INSERT INTO `tb_course_detail` VALUES (19, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 19, '2017-10-26 14:48:27');
+INSERT INTO `tb_course_detail` VALUES (20, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 20, '2017-10-26 14:48:27');
+INSERT INTO `tb_course_detail` VALUES (21, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 21, '2017-10-26 14:48:27');
+INSERT INTO `tb_course_detail` VALUES (22, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 22, '2017-10-26 14:48:27');
+INSERT INTO `tb_course_detail` VALUES (23, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 23, '2017-10-26 14:48:27');
+INSERT INTO `tb_course_detail` VALUES (24, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 24, '2017-10-26 14:48:27');
+INSERT INTO `tb_course_detail` VALUES (25, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 25, '2017-10-26 14:48:27');
+INSERT INTO `tb_course_detail` VALUES (26, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 26, '2017-10-26 14:48:27');
+INSERT INTO `tb_course_detail` VALUES (27, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 27, '2017-10-26 14:48:27');
+INSERT INTO `tb_course_detail` VALUES (28, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 28, '2017-10-26 14:48:27');
+INSERT INTO `tb_course_detail` VALUES (29, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 29, '2017-10-26 14:48:27');
+INSERT INTO `tb_course_detail` VALUES (30, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 30, '2017-10-26 14:48:27');
+INSERT INTO `tb_course_detail` VALUES (31, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 31, '2017-10-26 14:48:27');
+INSERT INTO `tb_course_detail` VALUES (32, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 32, '2017-10-26 14:48:27');
+INSERT INTO `tb_course_detail` VALUES (33, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 33, '2017-10-26 14:48:27');
+INSERT INTO `tb_course_detail` VALUES (34, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 34, '2017-10-26 14:48:27');
+INSERT INTO `tb_course_detail` VALUES (35, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 35, '2017-10-26 14:48:28');
+INSERT INTO `tb_course_detail` VALUES (36, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 36, '2017-10-26 14:48:28');
+INSERT INTO `tb_course_detail` VALUES (37, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 37, '2017-10-26 14:48:28');
+INSERT INTO `tb_course_detail` VALUES (38, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 38, '2017-10-26 14:48:28');
+INSERT INTO `tb_course_detail` VALUES (39, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 39, '2017-10-26 14:48:28');
+INSERT INTO `tb_course_detail` VALUES (40, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 40, '2017-10-26 14:48:28');
+INSERT INTO `tb_course_detail` VALUES (41, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 41, '2017-10-26 14:48:28');
+INSERT INTO `tb_course_detail` VALUES (42, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 42, '2017-10-26 14:48:28');
+INSERT INTO `tb_course_detail` VALUES (43, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 43, '2017-10-26 14:48:28');
+INSERT INTO `tb_course_detail` VALUES (44, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 44, '2017-10-26 14:48:28');
+INSERT INTO `tb_course_detail` VALUES (45, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 45, '2017-10-26 14:48:28');
+INSERT INTO `tb_course_detail` VALUES (46, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 46, '2017-10-26 14:48:28');
+INSERT INTO `tb_course_detail` VALUES (47, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 47, '2017-10-26 14:48:28');
+INSERT INTO `tb_course_detail` VALUES (48, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 48, '2017-10-26 14:48:28');
+INSERT INTO `tb_course_detail` VALUES (49, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 49, '2017-10-26 14:48:28');
+INSERT INTO `tb_course_detail` VALUES (50, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 50, '2017-10-26 14:48:28');
+INSERT INTO `tb_course_detail` VALUES (51, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 51, '2017-10-26 14:48:28');
+INSERT INTO `tb_course_detail` VALUES (52, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 52, '2017-10-26 14:48:28');
+INSERT INTO `tb_course_detail` VALUES (53, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 53, '2017-10-26 14:48:28');
+INSERT INTO `tb_course_detail` VALUES (54, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 54, '2017-10-26 14:48:28');
+INSERT INTO `tb_course_detail` VALUES (55, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 55, '2017-10-26 14:48:28');
+INSERT INTO `tb_course_detail` VALUES (56, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 56, '2017-10-26 14:48:28');
+INSERT INTO `tb_course_detail` VALUES (57, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 57, '2017-10-26 14:48:28');
+INSERT INTO `tb_course_detail` VALUES (58, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 58, '2017-10-26 14:48:28');
+INSERT INTO `tb_course_detail` VALUES (59, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 59, '2017-10-26 14:48:28');
+INSERT INTO `tb_course_detail` VALUES (60, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 60, '2017-10-26 14:48:28');
+INSERT INTO `tb_course_detail` VALUES (61, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 61, '2017-10-26 14:48:28');
+INSERT INTO `tb_course_detail` VALUES (62, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 62, '2017-10-26 14:48:28');
+INSERT INTO `tb_course_detail` VALUES (63, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 63, '2017-10-26 14:48:28');
+INSERT INTO `tb_course_detail` VALUES (64, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 64, '2017-10-26 14:48:28');
+INSERT INTO `tb_course_detail` VALUES (65, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 65, '2017-10-26 14:48:28');
+INSERT INTO `tb_course_detail` VALUES (66, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 66, '2017-10-26 14:48:28');
+INSERT INTO `tb_course_detail` VALUES (67, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 67, '2017-10-26 14:48:29');
+INSERT INTO `tb_course_detail` VALUES (68, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 68, '2017-10-26 14:48:29');
+INSERT INTO `tb_course_detail` VALUES (69, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 69, '2017-10-26 14:48:29');
+INSERT INTO `tb_course_detail` VALUES (70, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 70, '2017-10-26 14:48:29');
+INSERT INTO `tb_course_detail` VALUES (71, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 71, '2017-10-26 14:48:29');
+INSERT INTO `tb_course_detail` VALUES (72, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 72, '2017-10-26 14:48:29');
+INSERT INTO `tb_course_detail` VALUES (73, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 73, '2017-10-26 14:48:29');
+INSERT INTO `tb_course_detail` VALUES (74, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 74, '2017-10-26 14:48:29');
+INSERT INTO `tb_course_detail` VALUES (75, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 75, '2017-10-26 14:48:29');
+INSERT INTO `tb_course_detail` VALUES (76, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 76, '2017-10-26 14:48:29');
+INSERT INTO `tb_course_detail` VALUES (77, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 77, '2017-10-26 14:48:29');
+INSERT INTO `tb_course_detail` VALUES (78, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 78, '2017-10-26 14:48:29');
+INSERT INTO `tb_course_detail` VALUES (79, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 79, '2017-10-26 14:48:29');
+INSERT INTO `tb_course_detail` VALUES (80, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 80, '2017-10-26 14:48:29');
+INSERT INTO `tb_course_detail` VALUES (81, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 81, '2017-10-26 14:48:29');
+INSERT INTO `tb_course_detail` VALUES (82, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 82, '2017-10-26 14:48:29');
+INSERT INTO `tb_course_detail` VALUES (83, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 83, '2017-10-26 14:48:29');
+INSERT INTO `tb_course_detail` VALUES (84, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 84, '2017-10-26 14:48:29');
+INSERT INTO `tb_course_detail` VALUES (85, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 85, '2017-10-26 14:48:29');
+INSERT INTO `tb_course_detail` VALUES (86, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 86, '2017-10-26 14:48:29');
+INSERT INTO `tb_course_detail` VALUES (87, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 87, '2017-10-26 14:48:29');
+INSERT INTO `tb_course_detail` VALUES (88, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 88, '2017-10-26 14:48:29');
+INSERT INTO `tb_course_detail` VALUES (89, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 89, '2017-10-26 14:48:29');
+INSERT INTO `tb_course_detail` VALUES (90, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 90, '2017-10-26 14:48:29');
+INSERT INTO `tb_course_detail` VALUES (91, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 91, '2017-10-26 14:48:29');
+INSERT INTO `tb_course_detail` VALUES (92, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 92, '2017-10-26 14:48:29');
+INSERT INTO `tb_course_detail` VALUES (93, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 93, '2017-10-26 14:48:29');
+INSERT INTO `tb_course_detail` VALUES (94, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 94, '2017-10-26 14:48:29');
+INSERT INTO `tb_course_detail` VALUES (95, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 95, '2017-10-26 14:48:30');
+INSERT INTO `tb_course_detail` VALUES (96, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 96, '2017-10-26 14:48:30');
+INSERT INTO `tb_course_detail` VALUES (97, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 97, '2017-10-26 14:48:30');
+INSERT INTO `tb_course_detail` VALUES (98, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 98, '2017-10-26 14:48:30');
+INSERT INTO `tb_course_detail` VALUES (99, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 99, '2017-10-26 14:48:30');
+INSERT INTO `tb_course_detail` VALUES (100, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 100, '2017-10-26 14:48:30');
+INSERT INTO `tb_course_detail` VALUES (101, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 101, '2017-10-26 14:48:30');
+INSERT INTO `tb_course_detail` VALUES (102, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 102, '2017-10-26 14:48:30');
+INSERT INTO `tb_course_detail` VALUES (103, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 103, '2017-10-26 14:48:30');
+INSERT INTO `tb_course_detail` VALUES (104, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 104, '2017-10-26 14:48:30');
+INSERT INTO `tb_course_detail` VALUES (105, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 105, '2017-10-26 14:48:30');
+INSERT INTO `tb_course_detail` VALUES (106, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 106, '2017-10-26 14:48:30');
+INSERT INTO `tb_course_detail` VALUES (107, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 107, '2017-10-26 14:48:30');
+INSERT INTO `tb_course_detail` VALUES (108, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 108, '2017-10-26 14:48:30');
+INSERT INTO `tb_course_detail` VALUES (109, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 109, '2017-10-26 14:48:30');
+INSERT INTO `tb_course_detail` VALUES (110, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 110, '2017-10-26 14:48:30');
+INSERT INTO `tb_course_detail` VALUES (111, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 111, '2017-10-26 14:48:30');
+INSERT INTO `tb_course_detail` VALUES (112, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 112, '2017-10-26 14:48:30');
+INSERT INTO `tb_course_detail` VALUES (113, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 113, '2017-10-26 14:48:30');
+INSERT INTO `tb_course_detail` VALUES (114, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 114, '2017-10-26 14:48:30');
+INSERT INTO `tb_course_detail` VALUES (115, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 115, '2017-10-26 14:48:30');
+INSERT INTO `tb_course_detail` VALUES (116, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 116, '2017-10-26 14:48:30');
+INSERT INTO `tb_course_detail` VALUES (117, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 117, '2017-10-26 14:48:30');
+INSERT INTO `tb_course_detail` VALUES (118, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 118, '2017-10-26 14:48:30');
+INSERT INTO `tb_course_detail` VALUES (119, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 119, '2017-10-26 14:48:30');
+INSERT INTO `tb_course_detail` VALUES (120, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 120, '2017-10-26 14:48:30');
+INSERT INTO `tb_course_detail` VALUES (121, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 121, '2017-10-26 14:48:31');
+INSERT INTO `tb_course_detail` VALUES (122, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 122, '2017-10-26 14:48:31');
+INSERT INTO `tb_course_detail` VALUES (123, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 123, '2017-10-26 14:48:31');
+INSERT INTO `tb_course_detail` VALUES (124, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 124, '2017-10-26 14:48:31');
+INSERT INTO `tb_course_detail` VALUES (125, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 125, '2017-10-26 14:48:31');
+INSERT INTO `tb_course_detail` VALUES (126, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 126, '2017-10-26 14:48:31');
+INSERT INTO `tb_course_detail` VALUES (127, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 127, '2017-10-26 14:48:31');
+INSERT INTO `tb_course_detail` VALUES (128, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 128, '2017-10-26 14:48:31');
+INSERT INTO `tb_course_detail` VALUES (129, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 129, '2017-10-26 14:48:31');
+INSERT INTO `tb_course_detail` VALUES (130, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 130, '2017-10-26 14:48:31');
+INSERT INTO `tb_course_detail` VALUES (131, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 131, '2017-10-26 14:48:31');
+INSERT INTO `tb_course_detail` VALUES (132, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 132, '2017-10-26 14:48:31');
+INSERT INTO `tb_course_detail` VALUES (133, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 133, '2017-10-26 14:48:31');
+INSERT INTO `tb_course_detail` VALUES (134, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 134, '2017-10-26 14:48:31');
+INSERT INTO `tb_course_detail` VALUES (135, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 135, '2017-10-26 14:48:31');
+INSERT INTO `tb_course_detail` VALUES (136, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 136, '2017-10-26 14:48:31');
+INSERT INTO `tb_course_detail` VALUES (137, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 137, '2017-10-26 14:48:31');
+INSERT INTO `tb_course_detail` VALUES (138, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 138, '2017-10-26 14:48:31');
+INSERT INTO `tb_course_detail` VALUES (139, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 139, '2017-10-26 14:48:31');
+INSERT INTO `tb_course_detail` VALUES (140, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 140, '2017-10-26 14:48:31');
+INSERT INTO `tb_course_detail` VALUES (141, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 141, '2017-10-26 14:48:31');
+INSERT INTO `tb_course_detail` VALUES (142, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 142, '2017-10-26 14:48:31');
+INSERT INTO `tb_course_detail` VALUES (143, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 143, '2017-10-26 14:48:32');
+INSERT INTO `tb_course_detail` VALUES (144, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 144, '2017-10-26 14:48:32');
+INSERT INTO `tb_course_detail` VALUES (145, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 145, '2017-10-26 14:48:32');
+INSERT INTO `tb_course_detail` VALUES (146, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 146, '2017-10-26 14:48:32');
+INSERT INTO `tb_course_detail` VALUES (147, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 147, '2017-10-26 14:48:32');
+INSERT INTO `tb_course_detail` VALUES (148, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 148, '2017-10-26 14:48:32');
+INSERT INTO `tb_course_detail` VALUES (149, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 149, '2017-10-26 14:48:32');
+INSERT INTO `tb_course_detail` VALUES (150, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 150, '2017-10-26 14:48:32');
+INSERT INTO `tb_course_detail` VALUES (151, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 151, '2017-10-26 14:48:32');
+INSERT INTO `tb_course_detail` VALUES (152, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 152, '2017-10-26 14:48:32');
+INSERT INTO `tb_course_detail` VALUES (153, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 153, '2017-10-26 14:48:32');
+INSERT INTO `tb_course_detail` VALUES (154, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 154, '2017-10-26 14:48:32');
+INSERT INTO `tb_course_detail` VALUES (155, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 155, '2017-10-26 14:48:32');
+INSERT INTO `tb_course_detail` VALUES (156, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 156, '2017-10-26 14:48:32');
+INSERT INTO `tb_course_detail` VALUES (157, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 157, '2017-10-26 14:48:32');
+INSERT INTO `tb_course_detail` VALUES (158, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 158, '2017-10-26 14:48:32');
+INSERT INTO `tb_course_detail` VALUES (159, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 159, '2017-10-26 14:48:32');
+INSERT INTO `tb_course_detail` VALUES (160, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 160, '2017-10-26 14:48:32');
+INSERT INTO `tb_course_detail` VALUES (161, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 161, '2017-10-26 14:48:32');
+INSERT INTO `tb_course_detail` VALUES (162, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 162, '2017-10-26 14:48:32');
+INSERT INTO `tb_course_detail` VALUES (163, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 163, '2017-10-26 14:48:32');
+INSERT INTO `tb_course_detail` VALUES (164, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 164, '2017-10-26 14:48:32');
+INSERT INTO `tb_course_detail` VALUES (165, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 165, '2017-10-26 14:48:32');
+INSERT INTO `tb_course_detail` VALUES (166, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 166, '2017-10-26 14:48:32');
+INSERT INTO `tb_course_detail` VALUES (167, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 167, '2017-10-26 14:48:32');
+INSERT INTO `tb_course_detail` VALUES (168, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 168, '2017-10-26 14:48:32');
+INSERT INTO `tb_course_detail` VALUES (169, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 169, '2017-10-26 14:48:32');
+INSERT INTO `tb_course_detail` VALUES (170, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 170, '2017-10-26 14:48:32');
+INSERT INTO `tb_course_detail` VALUES (171, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 171, '2017-10-26 14:48:33');
+INSERT INTO `tb_course_detail` VALUES (172, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 172, '2017-10-26 14:48:33');
+INSERT INTO `tb_course_detail` VALUES (173, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 173, '2017-10-26 14:48:33');
+INSERT INTO `tb_course_detail` VALUES (174, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 174, '2017-10-26 14:48:33');
+INSERT INTO `tb_course_detail` VALUES (175, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 175, '2017-10-26 14:48:33');
+INSERT INTO `tb_course_detail` VALUES (176, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 176, '2017-10-26 14:48:33');
+INSERT INTO `tb_course_detail` VALUES (177, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 177, '2017-10-26 14:48:33');
+INSERT INTO `tb_course_detail` VALUES (178, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 178, '2017-10-26 14:48:33');
+INSERT INTO `tb_course_detail` VALUES (179, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 179, '2017-10-26 14:48:33');
+INSERT INTO `tb_course_detail` VALUES (180, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 180, '2017-10-26 14:48:33');
+INSERT INTO `tb_course_detail` VALUES (181, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 181, '2017-10-26 14:48:33');
+INSERT INTO `tb_course_detail` VALUES (182, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 182, '2017-10-26 14:48:33');
+INSERT INTO `tb_course_detail` VALUES (183, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 183, '2017-10-26 14:48:33');
+INSERT INTO `tb_course_detail` VALUES (184, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 184, '2017-10-26 14:48:33');
+INSERT INTO `tb_course_detail` VALUES (185, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 185, '2017-10-26 14:48:33');
+INSERT INTO `tb_course_detail` VALUES (186, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 186, '2017-10-26 14:48:33');
+INSERT INTO `tb_course_detail` VALUES (187, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 187, '2017-10-26 14:48:33');
+INSERT INTO `tb_course_detail` VALUES (188, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 188, '2017-10-26 14:48:33');
+INSERT INTO `tb_course_detail` VALUES (189, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 189, '2017-10-26 14:48:33');
+INSERT INTO `tb_course_detail` VALUES (190, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 190, '2017-10-26 14:48:33');
+INSERT INTO `tb_course_detail` VALUES (191, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 191, '2017-10-26 14:48:33');
+INSERT INTO `tb_course_detail` VALUES (192, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 192, '2017-10-26 14:48:33');
+INSERT INTO `tb_course_detail` VALUES (193, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 193, '2017-10-26 14:48:33');
+INSERT INTO `tb_course_detail` VALUES (194, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 194, '2017-10-26 14:48:33');
+INSERT INTO `tb_course_detail` VALUES (195, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 195, '2017-10-26 14:48:33');
+INSERT INTO `tb_course_detail` VALUES (196, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 196, '2017-10-26 14:48:34');
+INSERT INTO `tb_course_detail` VALUES (197, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 197, '2017-10-26 14:48:34');
+INSERT INTO `tb_course_detail` VALUES (198, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 198, '2017-10-26 14:48:34');
+INSERT INTO `tb_course_detail` VALUES (199, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 199, '2017-10-26 14:48:34');
+INSERT INTO `tb_course_detail` VALUES (200, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 200, '2017-10-26 14:48:34');
+INSERT INTO `tb_course_detail` VALUES (201, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 201, '2017-10-26 14:48:34');
+INSERT INTO `tb_course_detail` VALUES (202, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 202, '2017-10-26 14:48:34');
+INSERT INTO `tb_course_detail` VALUES (203, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 203, '2017-10-26 14:48:34');
+INSERT INTO `tb_course_detail` VALUES (204, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 204, '2017-10-26 14:48:34');
+INSERT INTO `tb_course_detail` VALUES (205, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 205, '2017-10-26 14:48:34');
+INSERT INTO `tb_course_detail` VALUES (206, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 206, '2017-10-26 14:48:34');
+INSERT INTO `tb_course_detail` VALUES (207, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 207, '2017-10-26 14:48:34');
+INSERT INTO `tb_course_detail` VALUES (208, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 208, '2017-10-26 14:48:34');
+INSERT INTO `tb_course_detail` VALUES (209, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 209, '2017-10-26 14:48:34');
+INSERT INTO `tb_course_detail` VALUES (210, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 210, '2017-10-26 14:48:34');
+INSERT INTO `tb_course_detail` VALUES (211, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 211, '2017-10-26 14:48:34');
+INSERT INTO `tb_course_detail` VALUES (212, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 212, '2017-10-26 14:48:34');
+INSERT INTO `tb_course_detail` VALUES (213, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 213, '2017-10-26 14:48:34');
+INSERT INTO `tb_course_detail` VALUES (214, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 214, '2017-10-26 14:48:34');
+INSERT INTO `tb_course_detail` VALUES (215, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 215, '2017-10-26 14:48:34');
+INSERT INTO `tb_course_detail` VALUES (216, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 216, '2017-10-26 14:48:34');
+INSERT INTO `tb_course_detail` VALUES (217, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 217, '2017-10-26 14:48:34');
+INSERT INTO `tb_course_detail` VALUES (218, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 218, '2017-10-26 14:48:34');
+INSERT INTO `tb_course_detail` VALUES (219, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 219, '2017-10-26 14:48:34');
+INSERT INTO `tb_course_detail` VALUES (220, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 220, '2017-10-26 14:48:34');
+INSERT INTO `tb_course_detail` VALUES (221, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 221, '2017-10-26 14:48:34');
+INSERT INTO `tb_course_detail` VALUES (222, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 222, '2017-10-26 14:48:34');
+INSERT INTO `tb_course_detail` VALUES (223, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 223, '2017-10-26 14:48:34');
+INSERT INTO `tb_course_detail` VALUES (224, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 224, '2017-10-26 14:48:35');
+INSERT INTO `tb_course_detail` VALUES (225, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 225, '2017-10-26 14:48:35');
+INSERT INTO `tb_course_detail` VALUES (226, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 226, '2017-10-26 14:48:35');
+INSERT INTO `tb_course_detail` VALUES (227, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 227, '2017-10-26 14:48:35');
+INSERT INTO `tb_course_detail` VALUES (228, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 228, '2017-10-26 14:48:35');
+INSERT INTO `tb_course_detail` VALUES (229, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 229, '2017-10-26 14:48:35');
+INSERT INTO `tb_course_detail` VALUES (230, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 230, '2017-10-26 14:48:35');
+INSERT INTO `tb_course_detail` VALUES (231, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 231, '2017-10-26 14:48:35');
+INSERT INTO `tb_course_detail` VALUES (232, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 232, '2017-10-26 14:48:35');
+INSERT INTO `tb_course_detail` VALUES (233, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 233, '2017-10-26 14:48:35');
+INSERT INTO `tb_course_detail` VALUES (234, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 234, '2017-10-26 14:48:35');
+INSERT INTO `tb_course_detail` VALUES (235, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 235, '2017-10-26 14:48:35');
+INSERT INTO `tb_course_detail` VALUES (236, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 236, '2017-10-26 14:48:35');
+INSERT INTO `tb_course_detail` VALUES (237, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 237, '2017-10-26 14:48:35');
+INSERT INTO `tb_course_detail` VALUES (238, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 238, '2017-10-26 14:48:35');
+INSERT INTO `tb_course_detail` VALUES (239, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 239, '2017-10-26 14:48:35');
+INSERT INTO `tb_course_detail` VALUES (240, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 240, '2017-10-26 14:48:35');
+INSERT INTO `tb_course_detail` VALUES (241, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 241, '2017-10-26 14:48:35');
+INSERT INTO `tb_course_detail` VALUES (242, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 242, '2017-10-26 14:48:35');
+INSERT INTO `tb_course_detail` VALUES (243, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 243, '2017-10-26 14:48:35');
+INSERT INTO `tb_course_detail` VALUES (244, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 244, '2017-10-26 14:48:35');
+INSERT INTO `tb_course_detail` VALUES (245, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 245, '2017-10-26 14:48:35');
+INSERT INTO `tb_course_detail` VALUES (246, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 246, '2017-10-26 14:48:35');
+INSERT INTO `tb_course_detail` VALUES (247, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 247, '2017-10-26 14:48:35');
+INSERT INTO `tb_course_detail` VALUES (248, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 248, '2017-10-26 14:48:35');
+INSERT INTO `tb_course_detail` VALUES (249, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 249, '2017-10-26 14:48:35');
+INSERT INTO `tb_course_detail` VALUES (250, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 250, '2017-10-26 14:48:35');
+INSERT INTO `tb_course_detail` VALUES (251, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 251, '2017-10-26 14:48:36');
+INSERT INTO `tb_course_detail` VALUES (252, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 252, '2017-10-26 14:48:36');
+INSERT INTO `tb_course_detail` VALUES (253, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 253, '2017-10-26 14:48:36');
+INSERT INTO `tb_course_detail` VALUES (254, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 254, '2017-10-26 14:48:36');
+INSERT INTO `tb_course_detail` VALUES (255, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 255, '2017-10-26 14:48:36');
+INSERT INTO `tb_course_detail` VALUES (256, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 256, '2017-10-26 14:48:36');
+INSERT INTO `tb_course_detail` VALUES (257, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 257, '2017-10-26 14:48:36');
+INSERT INTO `tb_course_detail` VALUES (258, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 258, '2017-10-26 14:48:36');
+INSERT INTO `tb_course_detail` VALUES (259, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 259, '2017-10-26 14:48:36');
+INSERT INTO `tb_course_detail` VALUES (260, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 260, '2017-10-26 14:48:36');
+INSERT INTO `tb_course_detail` VALUES (261, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 261, '2017-10-26 14:48:36');
+INSERT INTO `tb_course_detail` VALUES (262, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 262, '2017-10-26 14:48:36');
+INSERT INTO `tb_course_detail` VALUES (263, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 263, '2017-10-26 14:48:36');
+INSERT INTO `tb_course_detail` VALUES (264, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 264, '2017-10-26 14:48:36');
+INSERT INTO `tb_course_detail` VALUES (265, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 265, '2017-10-26 14:48:36');
+INSERT INTO `tb_course_detail` VALUES (266, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 266, '2017-10-26 14:48:36');
+INSERT INTO `tb_course_detail` VALUES (267, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 267, '2017-10-26 14:48:36');
+INSERT INTO `tb_course_detail` VALUES (268, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 268, '2017-10-26 14:48:36');
+INSERT INTO `tb_course_detail` VALUES (269, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 269, '2017-10-26 14:48:36');
+INSERT INTO `tb_course_detail` VALUES (270, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 270, '2017-10-26 14:48:36');
+INSERT INTO `tb_course_detail` VALUES (271, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 271, '2017-10-26 14:48:36');
+INSERT INTO `tb_course_detail` VALUES (272, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 272, '2017-10-26 14:48:36');
+INSERT INTO `tb_course_detail` VALUES (273, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 273, '2017-10-26 14:48:36');
+INSERT INTO `tb_course_detail` VALUES (274, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 274, '2017-10-26 14:48:36');
+INSERT INTO `tb_course_detail` VALUES (275, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 275, '2017-10-26 14:48:36');
+INSERT INTO `tb_course_detail` VALUES (276, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 276, '2017-10-26 14:48:36');
+INSERT INTO `tb_course_detail` VALUES (277, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 277, '2017-10-26 14:48:36');
+INSERT INTO `tb_course_detail` VALUES (278, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 278, '2017-10-26 14:48:36');
+INSERT INTO `tb_course_detail` VALUES (279, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 279, '2017-10-26 14:48:36');
+INSERT INTO `tb_course_detail` VALUES (280, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 280, '2017-10-26 14:48:37');
+INSERT INTO `tb_course_detail` VALUES (281, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 281, '2017-10-26 14:48:37');
+INSERT INTO `tb_course_detail` VALUES (282, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 282, '2017-10-26 14:48:37');
+INSERT INTO `tb_course_detail` VALUES (283, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 283, '2017-10-26 14:48:37');
+INSERT INTO `tb_course_detail` VALUES (284, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 284, '2017-10-26 14:48:37');
+INSERT INTO `tb_course_detail` VALUES (285, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 285, '2017-10-26 14:48:37');
+INSERT INTO `tb_course_detail` VALUES (286, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 286, '2017-10-26 14:48:37');
+INSERT INTO `tb_course_detail` VALUES (287, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 287, '2017-10-26 14:48:37');
+INSERT INTO `tb_course_detail` VALUES (288, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 288, '2017-10-26 14:48:37');
+INSERT INTO `tb_course_detail` VALUES (289, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 289, '2017-10-26 14:48:37');
+INSERT INTO `tb_course_detail` VALUES (290, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 290, '2017-10-26 14:48:37');
+INSERT INTO `tb_course_detail` VALUES (291, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 291, '2017-10-26 14:48:37');
+INSERT INTO `tb_course_detail` VALUES (292, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 292, '2017-10-26 14:48:37');
+INSERT INTO `tb_course_detail` VALUES (293, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 293, '2017-10-26 14:48:37');
+INSERT INTO `tb_course_detail` VALUES (294, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 294, '2017-10-26 14:48:37');
+INSERT INTO `tb_course_detail` VALUES (295, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 295, '2017-10-26 14:48:37');
+INSERT INTO `tb_course_detail` VALUES (296, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 296, '2017-10-26 14:48:37');
+INSERT INTO `tb_course_detail` VALUES (297, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 297, '2017-10-26 14:48:37');
+INSERT INTO `tb_course_detail` VALUES (298, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 298, '2017-10-26 14:48:37');
+INSERT INTO `tb_course_detail` VALUES (299, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 299, '2017-10-26 14:48:37');
+INSERT INTO `tb_course_detail` VALUES (300, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 300, '2017-10-26 14:48:37');
+INSERT INTO `tb_course_detail` VALUES (301, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 301, '2017-10-26 14:48:37');
+INSERT INTO `tb_course_detail` VALUES (302, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 302, '2017-10-26 14:48:37');
+INSERT INTO `tb_course_detail` VALUES (303, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 303, '2017-10-26 14:48:38');
+INSERT INTO `tb_course_detail` VALUES (304, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 304, '2017-10-26 14:48:38');
+INSERT INTO `tb_course_detail` VALUES (305, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 305, '2017-10-26 14:48:38');
+INSERT INTO `tb_course_detail` VALUES (306, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 306, '2017-10-26 14:48:38');
+INSERT INTO `tb_course_detail` VALUES (307, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 307, '2017-10-26 14:48:38');
+INSERT INTO `tb_course_detail` VALUES (308, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 308, '2017-10-26 14:48:38');
+INSERT INTO `tb_course_detail` VALUES (309, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 309, '2017-10-26 14:48:38');
+INSERT INTO `tb_course_detail` VALUES (310, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 310, '2017-10-26 14:48:38');
+INSERT INTO `tb_course_detail` VALUES (311, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 311, '2017-10-26 14:48:38');
+INSERT INTO `tb_course_detail` VALUES (312, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 312, '2017-10-26 14:48:38');
+INSERT INTO `tb_course_detail` VALUES (313, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 313, '2017-10-26 14:48:38');
+INSERT INTO `tb_course_detail` VALUES (314, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 314, '2017-10-26 14:48:38');
+INSERT INTO `tb_course_detail` VALUES (315, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 315, '2017-10-26 14:48:38');
+INSERT INTO `tb_course_detail` VALUES (316, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 316, '2017-10-26 14:48:38');
+INSERT INTO `tb_course_detail` VALUES (317, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 317, '2017-10-26 14:48:38');
+INSERT INTO `tb_course_detail` VALUES (318, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 318, '2017-10-26 14:48:38');
+INSERT INTO `tb_course_detail` VALUES (319, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 319, '2017-10-26 14:48:38');
+INSERT INTO `tb_course_detail` VALUES (320, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 320, '2017-10-26 14:48:38');
+INSERT INTO `tb_course_detail` VALUES (321, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 321, '2017-10-26 14:48:38');
+INSERT INTO `tb_course_detail` VALUES (322, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 322, '2017-10-26 14:48:38');
+INSERT INTO `tb_course_detail` VALUES (323, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 323, '2017-10-26 14:48:38');
+INSERT INTO `tb_course_detail` VALUES (324, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 324, '2017-10-26 14:48:38');
+INSERT INTO `tb_course_detail` VALUES (325, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 325, '2017-10-26 14:48:38');
+INSERT INTO `tb_course_detail` VALUES (326, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 326, '2017-10-26 14:48:38');
+INSERT INTO `tb_course_detail` VALUES (327, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 327, '2017-10-26 14:48:38');
+INSERT INTO `tb_course_detail` VALUES (328, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 328, '2017-10-26 14:48:38');
+INSERT INTO `tb_course_detail` VALUES (329, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 329, '2017-10-26 14:48:38');
+INSERT INTO `tb_course_detail` VALUES (330, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 330, '2017-10-26 14:48:38');
+INSERT INTO `tb_course_detail` VALUES (331, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 331, '2017-10-26 14:48:38');
+INSERT INTO `tb_course_detail` VALUES (332, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 332, '2017-10-26 14:48:39');
+INSERT INTO `tb_course_detail` VALUES (333, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 333, '2017-10-26 14:48:39');
+INSERT INTO `tb_course_detail` VALUES (334, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 334, '2017-10-26 14:48:39');
+INSERT INTO `tb_course_detail` VALUES (335, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 335, '2017-10-26 14:48:39');
+INSERT INTO `tb_course_detail` VALUES (336, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 336, '2017-10-26 14:48:39');
+INSERT INTO `tb_course_detail` VALUES (337, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 337, '2017-10-26 14:48:39');
+INSERT INTO `tb_course_detail` VALUES (338, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 338, '2017-10-26 14:48:39');
+INSERT INTO `tb_course_detail` VALUES (339, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 339, '2017-10-26 14:48:39');
+INSERT INTO `tb_course_detail` VALUES (340, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 340, '2017-10-26 14:48:39');
+INSERT INTO `tb_course_detail` VALUES (341, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 341, '2017-10-26 14:48:39');
+INSERT INTO `tb_course_detail` VALUES (342, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 342, '2017-10-26 14:48:39');
+INSERT INTO `tb_course_detail` VALUES (343, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 343, '2017-10-26 14:48:39');
+INSERT INTO `tb_course_detail` VALUES (344, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 344, '2017-10-26 14:48:39');
+INSERT INTO `tb_course_detail` VALUES (345, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 345, '2017-10-26 14:48:39');
+INSERT INTO `tb_course_detail` VALUES (346, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 346, '2017-10-26 14:48:39');
+INSERT INTO `tb_course_detail` VALUES (347, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 347, '2017-10-26 14:48:39');
+INSERT INTO `tb_course_detail` VALUES (348, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 348, '2017-10-26 14:48:39');
+INSERT INTO `tb_course_detail` VALUES (349, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 349, '2017-10-26 14:48:39');
+INSERT INTO `tb_course_detail` VALUES (350, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 350, '2017-10-26 14:48:39');
+INSERT INTO `tb_course_detail` VALUES (351, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 351, '2017-10-26 14:48:39');
+INSERT INTO `tb_course_detail` VALUES (352, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 352, '2017-10-26 14:48:39');
+INSERT INTO `tb_course_detail` VALUES (353, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 353, '2017-10-26 14:48:39');
+INSERT INTO `tb_course_detail` VALUES (354, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 354, '2017-10-26 14:48:39');
+INSERT INTO `tb_course_detail` VALUES (355, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 355, '2017-10-26 14:48:39');
+INSERT INTO `tb_course_detail` VALUES (356, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 356, '2017-10-26 14:48:39');
+INSERT INTO `tb_course_detail` VALUES (357, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 357, '2017-10-26 14:48:39');
+INSERT INTO `tb_course_detail` VALUES (358, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 358, '2017-10-26 14:48:40');
+INSERT INTO `tb_course_detail` VALUES (359, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 359, '2017-10-26 14:48:40');
+INSERT INTO `tb_course_detail` VALUES (360, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 360, '2017-10-26 14:48:40');
+INSERT INTO `tb_course_detail` VALUES (361, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 361, '2017-10-26 14:48:40');
+INSERT INTO `tb_course_detail` VALUES (362, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 362, '2017-10-26 14:48:40');
+INSERT INTO `tb_course_detail` VALUES (363, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 363, '2017-10-26 14:48:40');
+INSERT INTO `tb_course_detail` VALUES (364, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 364, '2017-10-26 14:48:40');
+INSERT INTO `tb_course_detail` VALUES (365, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 365, '2017-10-26 14:48:40');
+INSERT INTO `tb_course_detail` VALUES (366, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 366, '2017-10-26 14:48:40');
+INSERT INTO `tb_course_detail` VALUES (367, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 367, '2017-10-26 14:48:40');
+INSERT INTO `tb_course_detail` VALUES (368, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 368, '2017-10-26 14:48:40');
+INSERT INTO `tb_course_detail` VALUES (369, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 369, '2017-10-26 14:48:40');
+INSERT INTO `tb_course_detail` VALUES (370, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 370, '2017-10-26 14:48:40');
+INSERT INTO `tb_course_detail` VALUES (371, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 371, '2017-10-26 14:48:40');
+INSERT INTO `tb_course_detail` VALUES (372, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 372, '2017-10-26 14:48:40');
+INSERT INTO `tb_course_detail` VALUES (373, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 373, '2017-10-26 14:48:40');
+INSERT INTO `tb_course_detail` VALUES (374, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 374, '2017-10-26 14:48:40');
+INSERT INTO `tb_course_detail` VALUES (375, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 375, '2017-10-26 14:48:40');
+INSERT INTO `tb_course_detail` VALUES (376, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 376, '2017-10-26 14:48:40');
+INSERT INTO `tb_course_detail` VALUES (377, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 377, '2017-10-26 14:48:40');
+INSERT INTO `tb_course_detail` VALUES (378, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 378, '2017-10-26 14:48:40');
+INSERT INTO `tb_course_detail` VALUES (379, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 379, '2017-10-26 14:48:40');
+INSERT INTO `tb_course_detail` VALUES (380, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 380, '2017-10-26 14:48:40');
+INSERT INTO `tb_course_detail` VALUES (381, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 381, '2017-10-26 14:48:40');
+INSERT INTO `tb_course_detail` VALUES (382, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 382, '2017-10-26 14:48:40');
+INSERT INTO `tb_course_detail` VALUES (383, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 383, '2017-10-26 14:48:40');
+INSERT INTO `tb_course_detail` VALUES (384, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 384, '2017-10-26 14:48:40');
+INSERT INTO `tb_course_detail` VALUES (385, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 385, '2017-10-26 14:48:40');
+INSERT INTO `tb_course_detail` VALUES (386, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 386, '2017-10-26 14:48:40');
+INSERT INTO `tb_course_detail` VALUES (387, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 387, '2017-10-26 14:48:40');
+INSERT INTO `tb_course_detail` VALUES (388, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 388, '2017-10-26 14:48:41');
+INSERT INTO `tb_course_detail` VALUES (389, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 389, '2017-10-26 14:48:41');
+INSERT INTO `tb_course_detail` VALUES (390, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 390, '2017-10-26 14:48:41');
+INSERT INTO `tb_course_detail` VALUES (391, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 391, '2017-10-26 14:48:41');
+INSERT INTO `tb_course_detail` VALUES (392, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 392, '2017-10-26 14:48:41');
+INSERT INTO `tb_course_detail` VALUES (393, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 393, '2017-10-26 14:48:41');
+INSERT INTO `tb_course_detail` VALUES (394, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 394, '2017-10-26 14:48:41');
+INSERT INTO `tb_course_detail` VALUES (395, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 395, '2017-10-26 14:48:41');
+INSERT INTO `tb_course_detail` VALUES (396, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 396, '2017-10-26 14:48:41');
+INSERT INTO `tb_course_detail` VALUES (397, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 397, '2017-10-26 14:48:41');
+INSERT INTO `tb_course_detail` VALUES (398, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 398, '2017-10-26 14:48:41');
+INSERT INTO `tb_course_detail` VALUES (399, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 399, '2017-10-26 14:48:41');
+INSERT INTO `tb_course_detail` VALUES (400, 'A: 开发环境以GNU Linux (Ubuntu)为主,深度学习训练与测试需要符合CUDA要求的Nvidia显卡(显卡型号支持列表可以查询:https://developer.nvidia.com/cuda-gpus),对于最新的显卡系列建议最低 Nvidia Geforce GTX 1060,有条件的尽量 GTX 1080或1080 Ti, 如果有GTX Titan X 更好,显卡的内核数(CUDA Cores)以及显存数(GPU RAM) 尽量多一些。\r\n', '测试课程目录', '测试课程须知', 400, '2017-10-26 14:48:41');
+COMMIT;
-- ----------------------------
-- Table structure for tb_lesson
@@ -876,18 +1012,20 @@ CREATE TABLE `tb_lesson` (
-- ----------------------------
-- Records of tb_lesson
-- ----------------------------
-INSERT INTO `tb_lesson` VALUES ('1', '4', '本课程PPT+代码打包下载方式', '1', '2017-10-14 23:03:32', '1', '397');
-INSERT INTO `tb_lesson` VALUES ('2', '4', '同城微信学习群,欢迎加入', '1', '2017-10-14 23:03:32', '2', '397');
-INSERT INTO `tb_lesson` VALUES ('3', '4', '1024G联盟成员专属资料', '1', '2017-10-14 23:03:32', '3', '397');
-INSERT INTO `tb_lesson` VALUES ('4', '0', '课前必读', '0', '2017-10-14 23:03:32', '1', '397');
-INSERT INTO `tb_lesson` VALUES ('5', '0', '程序设计基础', '0', '2017-10-14 23:03:32', '3', '397');
-INSERT INTO `tb_lesson` VALUES ('6', '5', '计算机与程序设计', '1', '2017-10-14 23:03:32', '1', '397');
-INSERT INTO `tb_lesson` VALUES ('7', '5', 'Python语言概述', '1', '2017-10-14 23:03:32', '2', '397');
-INSERT INTO `tb_lesson` VALUES ('8', '4', '本课程PPT+代码打包下载方式', '1', '2017-10-09 21:14:02', '1', '400');
-INSERT INTO `tb_lesson` VALUES ('9', '4', '同城微信学习群,欢迎加入', '1', '2017-10-09 21:14:03', '2', '400');
-INSERT INTO `tb_lesson` VALUES ('10', '4', '1024G联盟成员专属资料', '1', '2017-10-09 21:14:05', '3', '400');
-INSERT INTO `tb_lesson` VALUES ('11', '5', '计算机与程序设计', '1', '2017-10-09 21:17:28', '1', '400');
-INSERT INTO `tb_lesson` VALUES ('12', '5', 'Python语言概述', '1', '2017-10-09 21:18:04', '2', '400');
+BEGIN;
+INSERT INTO `tb_lesson` VALUES (1, 4, '本课程PPT+代码打包下载方式', 1, '2017-10-14 23:03:32', 1, 397);
+INSERT INTO `tb_lesson` VALUES (2, 4, '同城微信学习群,欢迎加入', 1, '2017-10-14 23:03:32', 2, 397);
+INSERT INTO `tb_lesson` VALUES (3, 4, '1024G联盟成员专属资料', 1, '2017-10-14 23:03:32', 3, 397);
+INSERT INTO `tb_lesson` VALUES (4, 0, '课前必读', 0, '2017-10-14 23:03:32', 1, 397);
+INSERT INTO `tb_lesson` VALUES (5, 0, '程序设计基础', 0, '2017-10-14 23:03:32', 3, 397);
+INSERT INTO `tb_lesson` VALUES (6, 5, '计算机与程序设计', 1, '2017-10-14 23:03:32', 1, 397);
+INSERT INTO `tb_lesson` VALUES (7, 5, 'Python语言概述', 1, '2017-10-14 23:03:32', 2, 397);
+INSERT INTO `tb_lesson` VALUES (8, 4, '本课程PPT+代码打包下载方式', 1, '2017-10-09 21:14:02', 1, 400);
+INSERT INTO `tb_lesson` VALUES (9, 4, '同城微信学习群,欢迎加入', 1, '2017-10-09 21:14:03', 2, 400);
+INSERT INTO `tb_lesson` VALUES (10, 4, '1024G联盟成员专属资料', 1, '2017-10-09 21:14:05', 3, 400);
+INSERT INTO `tb_lesson` VALUES (11, 5, '计算机与程序设计', 1, '2017-10-09 21:17:28', 1, 400);
+INSERT INTO `tb_lesson` VALUES (12, 5, 'Python语言概述', 1, '2017-10-09 21:18:04', 2, 400);
+COMMIT;
-- ----------------------------
-- Table structure for tb_login_info
@@ -897,54 +1035,33 @@ CREATE TABLE `tb_login_info` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
- `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
- `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ `create_time` datetime NOT NULL,
+ `update_time` datetime NOT NULL,
+ `title_url` varchar(255) DEFAULT NULL COMMENT '头像url',
PRIMARY KEY (`id`)
-) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8;
+) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of tb_login_info
-- ----------------------------
-INSERT INTO `tb_login_info` VALUES ('1', 'sysadmin', 'UUKHSDDI5KPA43A8VL06V0TU2', '2017-10-26 16:29:15', '2017-10-26 17:30:22');
-INSERT INTO `tb_login_info` VALUES ('2', 'admin', '114CNIIUINKMJK72AA1P5807U3', '2017-10-26 16:58:57', '2017-10-26 18:46:08');
-INSERT INTO `tb_login_info` VALUES ('3', 'admin1', 'UUKHSDDI5KPA43A8VL06V0TU2', '2017-10-26 16:59:06', '2017-10-26 17:00:39');
-INSERT INTO `tb_login_info` VALUES ('4', 'admin2', 'UUKHSDDI5KPA43A8VL06V0TU2', '2017-10-26 16:59:13', '2017-10-26 17:00:39');
-INSERT INTO `tb_login_info` VALUES ('5', 'sysadmin7', 'UUKHSDDI5KPA43A8VL06V0TU2', '2017-10-26 16:59:22', '2017-10-26 17:00:39');
-INSERT INTO `tb_login_info` VALUES ('6', 'sys', 'UUKHSDDI5KPA43A8VL06V0TU2', '2017-10-26 16:59:29', '2017-10-26 17:00:39');
-INSERT INTO `tb_login_info` VALUES ('7', 'xbs', 'UUKHSDDI5KPA43A8VL06V0TU2', '2017-10-26 16:59:37', '2017-10-26 17:00:39');
-INSERT INTO `tb_login_info` VALUES ('8', 'aaa', 'UUKHSDDI5KPA43A8VL06V0TU2', '2017-10-26 16:59:43', '2017-10-26 17:00:39');
-INSERT INTO `tb_login_info` VALUES ('9', 'xuebusi', 'UUKHSDDI5KPA43A8VL06V0TU2', '2017-10-26 17:00:14', '2017-10-26 17:00:14');
-INSERT INTO `tb_login_info` VALUES ('10', 'zhangsan', '1QVQ0EO4M1PTTIH1L2FP2LEDF', '2017-10-26 17:19:59', '2017-10-26 17:19:59');
-INSERT INTO `tb_login_info` VALUES ('11', 'lisi', 'UUKHSDDI5KPA43A8VL06V0TU2', '2017-10-26 17:25:35', '2017-10-26 17:25:35');
-INSERT INTO `tb_login_info` VALUES ('12', 'wangwu', 'UUKHSDDI5KPA43A8VL06V0TU2', '2017-10-26 18:30:59', '2017-10-26 18:30:59');
-INSERT INTO `tb_login_info` VALUES ('13', 'xiaohua', '114CNIIUINKMJK72AA1P5807U3', '2017-10-26 18:45:40', '2017-10-26 18:45:40');
-
--- ----------------------------
--- Table structure for tb_teacher
--- ----------------------------
-DROP TABLE IF EXISTS `tb_teacher`;
-CREATE TABLE `tb_teacher` (
- `id` int(11) NOT NULL AUTO_INCREMENT,
- `teacher_name` varchar(255) DEFAULT NULL COMMENT '讲师名称',
- `teacher_about` varchar(255) DEFAULT NULL COMMENT '讲师简介',
- `teacher_learn` varchar(255) DEFAULT NULL COMMENT '在学课程id列表',
- `teacher_learning_classroom` varchar(255) DEFAULT NULL COMMENT '在学班级id列表',
- `teacher_favorited` varchar(255) DEFAULT NULL COMMENT '收藏的课程id列表',
- `teacher_group` varchar(255) DEFAULT NULL COMMENT '加入的小组id列表',
- `teacher_following` varchar(255) DEFAULT NULL COMMENT '关注的用户id列表',
- `teacher_follower` varchar(255) DEFAULT NULL COMMENT '粉丝id列表',
- `teacher_rank` varchar(255) DEFAULT NULL COMMENT '头衔',
- `teacher_sign` varchar(255) DEFAULT NULL COMMENT '签名',
- `create_time` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
- `teacher_photo_url` varchar(255) DEFAULT NULL COMMENT '头像url',
- PRIMARY KEY (`id`)
-) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
-
--- ----------------------------
--- Records of tb_teacher
--- ----------------------------
-INSERT INTO `tb_teacher` VALUES ('1', '史艳军', '第三方个但是了看到数据发了多少会计法里的数据发了多少街坊邻居独守空房记录的开始讲发了多少家放了看到数据肺力咳检索关联会立刻贷后管理', null, null, null, null, null, null, null, null, '2017-10-08 22:05:31', 'http://scb1a9q0-sb.qiqiuyun.net/files/default/2016/04-29/115850a2aa1e333636.jpg');
-INSERT INTO `tb_teacher` VALUES ('2', 'Robin_TY', '查尔斯特大学(Charles Sturt University)计算机博士,从事机器学习、计算机视觉及模式识别等相关方向的研究,在计算机视觉等国际会议及期刊发表10余篇学术论文。现就职于澳大利亚某科学研究机构,负责算法改进及其产品化、数据分析处理及可视化。', null, null, null, null, null, null, null, null, '2017-10-02 22:04:08', 'http://scb1a9q0-sb.qiqiuyun.net/files/user/2014/06-25/2145415d1f1d777940.png');
+BEGIN;
+INSERT INTO `tb_login_info` VALUES (1, 'sysadmin', 'UUKHSDDI5KPA43A8VL06V0TU2', '2017-10-30 22:27:30', '2017-10-30 22:27:30', 'http://scb1a9q0-sb.qiqiuyun.net/files/default/2016/04-12/120240100a71483765.jpg');
+INSERT INTO `tb_login_info` VALUES (2, 'admin', '114CNIIUINKMJK72AA1P5807U3', '2017-10-30 22:27:34', '2017-10-30 22:27:34', 'http://scb1a9q0-sb.qiqiuyun.net/files/user/2017/10-16/16573828bc6d933684.jpg');
+INSERT INTO `tb_login_info` VALUES (3, 'admin1', 'UUKHSDDI5KPA43A8VL06V0TU2', '2017-10-30 22:27:47', '2017-10-30 22:27:47', 'http://scb1a9q0-sb.qiqiuyun.net/files/default/2017/01-09/0929117b04eb900787.jpg');
+INSERT INTO `tb_login_info` VALUES (4, 'admin2', 'UUKHSDDI5KPA43A8VL06V0TU2', '2017-10-30 22:27:56', '2017-10-30 22:27:56', 'http://scb1a9q0-sb.qiqiuyun.net/files/default/2017/02-15/014349589791291252.jpg');
+INSERT INTO `tb_login_info` VALUES (5, 'sysadmin7', 'UUKHSDDI5KPA43A8VL06V0TU2', '2017-10-30 22:28:11', '2017-10-30 22:28:11', 'http://scb1a9q0-sb.qiqiuyun.net/files/user/2017/10-10/014839763420341733.jpg');
+INSERT INTO `tb_login_info` VALUES (6, 'sys', 'UUKHSDDI5KPA43A8VL06V0TU2', '2017-10-30 22:28:27', '2017-10-30 22:28:27', 'http://scb1a9q0-sb.qiqiuyun.net/files/default/2017/10-12/020620c8f73e702781.jpg');
+INSERT INTO `tb_login_info` VALUES (7, 'xbs', 'UUKHSDDI5KPA43A8VL06V0TU2', '2017-10-30 22:28:39', '2017-10-30 22:28:39', 'http://scb1a9q0-sb.qiqiuyun.net/files/default/2017/10-14/05551421a3d7326133.jpg');
+INSERT INTO `tb_login_info` VALUES (8, 'aaa', 'UUKHSDDI5KPA43A8VL06V0TU2', '2017-10-30 22:28:50', '2017-10-30 22:28:50', 'http://scb1a9q0-sb.qiqiuyun.net/files/user/2017/01-05/163913106a19187123.jpg');
+INSERT INTO `tb_login_info` VALUES (9, 'xuebusi', 'UUKHSDDI5KPA43A8VL06V0TU2', '2017-10-30 22:29:02', '2017-10-30 22:29:02', 'http://scb1a9q0-sb.qiqiuyun.net/files/user/2017/07-20/120103f78876702751.jpg');
+INSERT INTO `tb_login_info` VALUES (10, 'zhangsan', '1QVQ0EO4M1PTTIH1L2FP2LEDF', '2017-10-30 22:29:12', '2017-10-30 22:29:12', 'http://scb1a9q0-sb.qiqiuyun.net/files/default/2017/10-08/123232015b49756117.jpg');
+INSERT INTO `tb_login_info` VALUES (11, 'lisi', 'UUKHSDDI5KPA43A8VL06V0TU2', '2017-10-30 22:29:21', '2017-10-30 22:29:21', 'http://scb1a9q0-sb.qiqiuyun.net/files/default/2017/10-10/1320513717e4547532.jpg');
+INSERT INTO `tb_login_info` VALUES (12, 'wangwu', 'UUKHSDDI5KPA43A8VL06V0TU2', '2017-10-30 22:29:31', '2017-10-30 22:29:31', 'http://scb1a9q0-sb.qiqiuyun.net/files/default/2017/10-11/110724cabb63151238.jpg');
+INSERT INTO `tb_login_info` VALUES (13, 'xiaohua', '114CNIIUINKMJK72AA1P5807U3', '2017-10-30 22:29:50', '2017-10-30 22:29:50', 'http://scb1a9q0-sb.qiqiuyun.net/files/default/2016/09-14/054515bc084f111899.jpg');
+INSERT INTO `tb_login_info` VALUES (14, 'ttt', 'UUKHSDDI5KPA43A8VL06V0TU2', '2017-10-30 22:29:58', '2017-10-30 22:29:58', 'http://scb1a9q0-sb.qiqiuyun.net/files/default/2017/09-19/160430e3e39d511993.jpg');
+INSERT INTO `tb_login_info` VALUES (16, '5086539099', '', '2017-11-07 21:53:42', '2017-11-07 21:53:42', NULL);
+INSERT INTO `tb_login_info` VALUES (17, 'caiyuyu', 'fb830a69259d870124a9553286fbe041', '2017-11-10 10:29:17', '2017-11-10 10:29:17', NULL);
+COMMIT;
-- ----------------------------
-- Table structure for tb_user
@@ -953,7 +1070,7 @@ DROP TABLE IF EXISTS `tb_user`;
CREATE TABLE `tb_user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(255) NOT NULL COMMENT '用户名',
- `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+ `create_time` datetime NOT NULL COMMENT '创建时间',
`truename` varchar(255) DEFAULT NULL COMMENT '真实姓名',
`gender` varchar(255) DEFAULT NULL COMMENT '性别 1男2女',
`idcard` varchar(255) DEFAULT NULL COMMENT '身份证号码',
@@ -973,23 +1090,115 @@ CREATE TABLE `tb_user` (
`company` varchar(255) DEFAULT NULL COMMENT '公司',
`is_weibo_public` varchar(255) DEFAULT 'on' COMMENT '微博是否公开',
`course_ids` varchar(255) DEFAULT NULL,
- `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ `update_time` datetime NOT NULL,
PRIMARY KEY (`id`)
-) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8;
+) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of tb_user
-- ----------------------------
-INSERT INTO `tb_user` VALUES ('4', 'sysadmin', '2017-10-26 17:34:47', '系统管理员', 'female', '110101194905063476', '1390108887', '道长6', '老大6', '我是老大我怕谁6', '我是系统管理员
\r\n', 'http://www.zsf.com6', 'http://weibo.com/zsf6', 'zhangsanfeng6', null, '5678976', 'on', 'it6', '北京市大兴区', '北京张氏有限公司6', null, '3,90,1,34,99,56,2,7,8', '2017-10-26 19:04:35');
-INSERT INTO `tb_user` VALUES ('5', 'admin', '2017-10-26 16:55:02', '管理员', 'female', '110101198809086666', '13420983378', '研发工程师6', '高级工程师6', '只要学不死,就往死里学!6', '直播简介
\r\n\r\n \r\n近两年来,数据分析师的岗位需求非常大,90%的岗位技能需要掌握Python作为数据分析工具,Python语言的易学性、快速开发,拥有丰富强大的扩展库和成熟的框架等特性很好地满足了数据分析师的职业技能要求。很多互联网公司都逐渐意识到了数据的重要性,但却缺乏相关的专业人才来分析和管理数据。 \r\n本讲座主要通过数据处理分析建模的流程讲述各步骤的知识和技巧,并最终通过“员工离职原因分析及预测”案例演示如何通过使用Python中常用的数据分析建模库完成一个基本的数据分析建模项目,使学员能够快速地了解数据分析建模的整个流程。
\r\n\r\n直播安排
\r\n\r\n \r\n1. 数据分析基本概念 \r\n2. 数据分析基本步骤 \r\n3. Pandas简单数据分析 \r\n4. 数据分析建模理论基础 \r\n5. 案例分析
\r\n\r\n演讲者
\r\n\r\n梁斌 \r\n查尔斯特大学(Charles Sturt University)计算机博士,从事机器学习、计算机视觉及模式识别等相关方向的研究,在计算机视觉等国际会议及期刊发表10余篇学术论文。现就职于澳大利亚某科学研究机构(博士后),负责算法改进及其产品化、数据分析处理、建模及可视化。
\r\n\r\n
\r\n', 'http://jlkjljl.com6', 'http://owueo.com6', 'jlsk6', null, '556656', 'on', 'IT行业6', 'beijing6', '慕课网6', null, '3,4,78,123,5,67', '2017-10-26 18:48:45');
-INSERT INTO `tb_user` VALUES ('6', 'admin1', '2017-10-22 11:08:15', '我是管理员555', 'female', '', '', '', '', '', '', '', '', '', null, '', null, null, '', '', null, '22,133,24,10,2,6', '2017-10-26 15:44:04');
-INSERT INTO `tb_user` VALUES ('7', 'admin2', '2017-10-22 11:08:15', '我是管理员888', 'female', '', '', '', '', '', '', '', '', '', null, '', null, null, '', '', null, '1,2,3', '2017-10-26 15:44:04');
-INSERT INTO `tb_user` VALUES ('8', 'sysadmin7', '2017-10-22 14:13:49', null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, '56,99,4,9', '2017-10-26 15:44:04');
-INSERT INTO `tb_user` VALUES ('9', 'sys', '2017-10-22 14:48:15', null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, '67', '2017-10-26 15:44:04');
-INSERT INTO `tb_user` VALUES ('10', 'xbs', '2017-10-26 13:57:49', 'xbs', 'female', '1231312', '324214124', '格式工厂', '大范甘迪', '多少个但是反倒是', '节点上雷锋精神了可见辅导老师家放了第三方来看到数据发了多少会计分录但是跨节点上雷锋精神了可见辅导老师家放了第三方来看到数据发了多少会计分录但是跨节点上雷锋精神了可见辅导老师家放了第三方来看到数据发了多少会计分录但是跨节点上雷锋精神了可见辅导老师家放了第三方来看到数据发了多少会计分录但是跨节点上雷锋精神了可见辅导老师家放了第三方来看到数据发了多少会计分录但是跨
\r\n', 'gsgs', 'lurwoiuro', 'jlsdkfjklsj', null, 'jfdslfjklsjfl', 'on', '了会计分录肯定是', '美国洛杉矶', '的身高多少', null, '378', '2017-10-26 15:44:04');
-INSERT INTO `tb_user` VALUES ('11', 'aaa', '2017-10-26 14:01:53', null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, '2,55,6,89,234,123', '2017-10-26 18:48:59');
-INSERT INTO `tb_user` VALUES ('12', 'xuebusi', '2017-10-26 17:14:27', '学不死教育', 'female', '', '', '', '', '', '', '', '', '', null, '', 'on', '', '', '', null, '20,1,7', '2017-10-26 18:49:07');
-INSERT INTO `tb_user` VALUES ('13', 'zhangsan', '2017-10-26 17:21:17', '张三', 'female', '', '', '', '', '', '', '', '', '', null, '', 'on', '', '', '', null, '1,2,3,4,5,6,7,8,9', '2017-10-26 18:49:16');
-INSERT INTO `tb_user` VALUES ('14', 'lisi', '2017-10-26 17:29:34', '李四', 'female', '239402984028', '15878765646', '退热贴', 'retreat', '热太热太热他', '儿童热帖人它
\r\n', '人特让他', '儿童热t', '热同仁堂', null, '儿童热帖', 'on', '儿童热帖', '儿童热帖人它', '二台', null, '12,34,23,24,36,76,45,32,1', '2017-10-26 18:49:28');
-INSERT INTO `tb_user` VALUES ('15', 'wangwu', '2017-10-26 18:30:59', '王五', 'female', '24324', '23432432', '546546', '45645', '46546456', '456456456456
\r\n', '456456', '456456', '64564', null, '645646', 'on', '456456457', '65765', '435435', null, '56,7,8,4,5,2,34,22', '2017-10-26 18:49:38');
-INSERT INTO `tb_user` VALUES ('16', 'xiaohua', '2017-10-26 18:45:40', null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, '3,4,22,34,2,88', '2017-10-26 18:49:49');
+BEGIN;
+INSERT INTO `tb_user` VALUES (1, 'sysadmin', '2017-10-30 14:33:49', '系统管理员', 'female', '110101194905063476', '1390108887', '道长6', '老大6', '我是老大我怕谁6', '杨真 资深软件架构师 曾就职于Sun中国工程研究院,负责Java 虚拟机的定制开发工作;之后就任腾讯无线部门技术负责人,引领开发了第一版的欢乐斗地主、QQ空间移动版及QQ音乐;2013年自主创业并任公司CTO,开发了多款基于爬虫、大数据及搜索引擎的商业应用及产品。06年硕士毕业于北京航空航天大学计算机专业,一直从事软件研发工作,具备丰富的互联网产品研发经验
\r\n', 'http://www.zsf.com6', 'http://weibo.com/zsf6', 'zhangsanfeng6', NULL, '5678976', 'on', 'it6', '北京市大兴区', '北京张氏有限公司6', NULL, '3,90,1,34,99,56,2,7,8', '2017-10-30 14:33:49');
+INSERT INTO `tb_user` VALUES (2, 'admin', '2017-10-30 15:25:10', '管理员', 'female', '110101198809086666', '13420983378', '研发工程师6', '高级工程师6', '只要学不死,就往死里学!6', '杨真 资深软件架构师 曾就职于Sun中国工程研究院,负责Java 虚拟机的定制开发工作;之后就任腾讯无线部门技术负责人,引领开发了第一版的欢乐斗地主、QQ空间移动版及QQ音乐;2013年自主创业并任公司CTO,开发了多款基于爬虫、大数据及搜索引擎的商业应用及产品。06年硕士毕业于北京航空航天大学计算机专业,一直从事软件研发工作,具备丰富的互联网产品研发经验
\r\n', 'http://jlkjljl.com6', 'http://owueo.com6', 'jlsk6', NULL, '556656', 'on', 'IT行业6', 'beijing6', '慕课网6', NULL, '3,4,78,123,5,67', '2017-10-30 15:25:10');
+INSERT INTO `tb_user` VALUES (3, 'admin1', '2017-10-30 15:12:59', '我是管理员555', 'female', '', '', '人人', '是范德萨发', '只要学不死,就往死里学!6', '杨真 资深软件架构师 曾就职于Sun中国工程研究院,负责Java 虚拟机的定制开发工作;之后就任腾讯无线部门技术负责人,引领开发了第一版的欢乐斗地主、QQ空间移动版及QQ音乐;2013年自主创业并任公司CTO,开发了多款基于爬虫、大数据及搜索引擎的商业应用及产品。06年硕士毕业于北京航空航天大学计算机专业,一直从事软件研发工作,具备丰富的互联网产品研发经验
\r\n', 'http://www.zsf.com6', '', 'erewr', NULL, '', NULL, 'it6', '上海', '上海', NULL, '22,133,24,10,2,6', '2017-10-30 15:12:59');
+INSERT INTO `tb_user` VALUES (4, 'admin2', '2017-10-30 15:25:16', '我是管理员888', 'female', '', '', '淘淘', '给的他人', '只要学不死,就往死里学!6', '杨真 资深软件架构师 曾就职于Sun中国工程研究院,负责Java 虚拟机的定制开发工作;之后就任腾讯无线部门技术负责人,引领开发了第一版的欢乐斗地主、QQ空间移动版及QQ音乐;2013年自主创业并任公司CTO,开发了多款基于爬虫、大数据及搜索引擎的商业应用及产品。06年硕士毕业于北京航空航天大学计算机专业,一直从事软件研发工作,具备丰富的互联网产品研发经验
\r\n', 'http://jlkjljl.com6', '', 'dsgs', NULL, '', NULL, 'IT行业6', '重庆', '重庆', NULL, '1,2,3', '2017-10-30 15:25:16');
+INSERT INTO `tb_user` VALUES (5, 'sysadmin7', '2017-10-30 15:13:01', '随寓随安', NULL, NULL, NULL, '嗯嗯', '柔柔弱弱', '只要学不死,就往死里学!6', '杨真 资深软件架构师 曾就职于Sun中国工程研究院,负责Java 虚拟机的定制开发工作;之后就任腾讯无线部门技术负责人,引领开发了第一版的欢乐斗地主、QQ空间移动版及QQ音乐;2013年自主创业并任公司CTO,开发了多款基于爬虫、大数据及搜索引擎的商业应用及产品。06年硕士毕业于北京航空航天大学计算机专业,一直从事软件研发工作,具备丰富的互联网产品研发经验
\r\n', 'http://www.zsf.com6', NULL, 'hdh', NULL, NULL, NULL, 'it6', '济南', '济南', NULL, '56,99,4,9', '2017-10-30 15:13:01');
+INSERT INTO `tb_user` VALUES (6, 'sys', '2017-10-30 15:25:17', '实验室', NULL, NULL, NULL, '由于', '额特务', '只要学不死,就往死里学!6', '杨真 资深软件架构师 曾就职于Sun中国工程研究院,负责Java 虚拟机的定制开发工作;之后就任腾讯无线部门技术负责人,引领开发了第一版的欢乐斗地主、QQ空间移动版及QQ音乐;2013年自主创业并任公司CTO,开发了多款基于爬虫、大数据及搜索引擎的商业应用及产品。06年硕士毕业于北京航空航天大学计算机专业,一直从事软件研发工作,具备丰富的互联网产品研发经验
\r\n', 'http://jlkjljl.com6', NULL, 'sfdsg', NULL, NULL, NULL, 'IT行业6', '合肥', '合肥', NULL, '67', '2017-10-30 15:25:17');
+INSERT INTO `tb_user` VALUES (7, 'xbs', '2017-10-30 15:25:20', '学布斯', 'female', '1231312', '324214124', '格式工厂', '大范甘迪', '多少个但是反倒是', '杨真 资深软件架构师 曾就职于Sun中国工程研究院,负责Java 虚拟机的定制开发工作;之后就任腾讯无线部门技术负责人,引领开发了第一版的欢乐斗地主、QQ空间移动版及QQ音乐;2013年自主创业并任公司CTO,开发了多款基于爬虫、大数据及搜索引擎的商业应用及产品。06年硕士毕业于北京航空航天大学计算机专业,一直从事软件研发工作,具备丰富的互联网产品研发经验
\r\n', 'http://www.zsf.com6', 'lurwoiuro', 'jlsdkfjklsj', NULL, 'jfdslfjklsjfl', 'on', '了会计分录肯定是', '美国洛杉矶', '美国洛杉矶', NULL, '378', '2017-10-30 15:25:20');
+INSERT INTO `tb_user` VALUES (8, 'aaa', '2017-10-30 15:13:04', 'AAA', 'female', '', '', '嗯嗯', '而我特务', '只要学不死,就往死里学!6', '杨真 资深软件架构师 曾就职于Sun中国工程研究院,负责Java 虚拟机的定制开发工作;之后就任腾讯无线部门技术负责人,引领开发了第一版的欢乐斗地主、QQ空间移动版及QQ音乐;2013年自主创业并任公司CTO,开发了多款基于爬虫、大数据及搜索引擎的商业应用及产品。06年硕士毕业于北京航空航天大学计算机专业,一直从事软件研发工作,具备丰富的互联网产品研发经验
\r\n', 'http://jlkjljl.com6', '', 'dsfsr', NULL, '', 'on', 'it6', '广州', '广州', NULL, '2,55,6,89,234,123', '2017-10-30 22:43:26');
+INSERT INTO `tb_user` VALUES (9, 'xuebusi', '2017-10-30 15:25:20', '学不死教育', 'female', '', '', '一谢文婷', '434天天热帖', '只要学不死,就往死里学!6', '杨真 资深软件架构师 曾就职于Sun中国工程研究院,负责Java 虚拟机的定制开发工作;之后就任腾讯无线部门技术负责人,引领开发了第一版的欢乐斗地主、QQ空间移动版及QQ音乐;2013年自主创业并任公司CTO,开发了多款基于爬虫、大数据及搜索引擎的商业应用及产品。06年硕士毕业于北京航空航天大学计算机专业,一直从事软件研发工作,具备丰富的互联网产品研发经验
\r\n', 'http://www.zsf.com6', '', 'fdgdg', NULL, '', 'on', 'IT行业6', '成都', '成都', NULL, '20,1,7', '2017-10-30 15:25:20');
+INSERT INTO `tb_user` VALUES (10, 'zhangsan', '2017-10-30 15:13:06', '张三', 'female', '', '', '日期', '认为他', '只要学不死,就往死里学!6', '杨真 资深软件架构师 曾就职于Sun中国工程研究院,负责Java 虚拟机的定制开发工作;之后就任腾讯无线部门技术负责人,引领开发了第一版的欢乐斗地主、QQ空间移动版及QQ音乐;2013年自主创业并任公司CTO,开发了多款基于爬虫、大数据及搜索引擎的商业应用及产品。06年硕士毕业于北京航空航天大学计算机专业,一直从事软件研发工作,具备丰富的互联网产品研发经验
\r\n', 'http://jlkjljl.com6', '', 'gfdh', NULL, '', 'on', 'it6', '哈尔滨', '哈尔滨', NULL, '1,2,3,4,5,6,7,8,9', '2017-10-30 15:13:06');
+INSERT INTO `tb_user` VALUES (11, 'lisi', '2017-10-30 15:25:25', '李四', 'female', '239402984028', '15878765646', '退热贴', 'retreat', '热太热太热他', '杨真 资深软件架构师 曾就职于Sun中国工程研究院,负责Java 虚拟机的定制开发工作;之后就任腾讯无线部门技术负责人,引领开发了第一版的欢乐斗地主、QQ空间移动版及QQ音乐;2013年自主创业并任公司CTO,开发了多款基于爬虫、大数据及搜索引擎的商业应用及产品。06年硕士毕业于北京航空航天大学计算机专业,一直从事软件研发工作,具备丰富的互联网产品研发经验
\r\n', 'http://www.zsf.com6', '儿童热t', 'dgfd', NULL, '儿童热帖', 'on', 'IT行业6', '齐齐哈尔', '齐齐哈尔', NULL, '12,34,23,24,36,76,45,32,1', '2017-10-30 15:25:25');
+INSERT INTO `tb_user` VALUES (12, 'wangwu', '2017-10-30 15:13:13', '王五', 'female', '24324', '23432432', '546546', '45645', '只要学不死,就往死里学!6', '杨真 资深软件架构师 曾就职于Sun中国工程研究院,负责Java 虚拟机的定制开发工作;之后就任腾讯无线部门技术负责人,引领开发了第一版的欢乐斗地主、QQ空间移动版及QQ音乐;2013年自主创业并任公司CTO,开发了多款基于爬虫、大数据及搜索引擎的商业应用及产品。06年硕士毕业于北京航空航天大学计算机专业,一直从事软件研发工作,具备丰富的互联网产品研发经验
\r\n', 'http://jlkjljl.com6', '456456', 'sgrwty', NULL, '645646', 'on', '456456457', '南京', '南京', NULL, '56,7,8,4,5,2,34,22', '2017-10-30 15:13:13');
+INSERT INTO `tb_user` VALUES (13, 'xiaohua', '2017-10-30 15:25:25', '小花', NULL, NULL, NULL, '问我', '而我认为', '只要学不死,就往死里学!6', '杨真 资深软件架构师 曾就职于Sun中国工程研究院,负责Java 虚拟机的定制开发工作;之后就任腾讯无线部门技术负责人,引领开发了第一版的欢乐斗地主、QQ空间移动版及QQ音乐;2013年自主创业并任公司CTO,开发了多款基于爬虫、大数据及搜索引擎的商业应用及产品。06年硕士毕业于北京航空航天大学计算机专业,一直从事软件研发工作,具备丰富的互联网产品研发经验
\r\n', 'http://jlkjljl.com6', NULL, 'dgfd', NULL, NULL, NULL, 'it6', '三亚', '三亚', NULL, '3,4,22,34,2,88', '2017-10-30 15:25:25');
+INSERT INTO `tb_user` VALUES (14, 'ttt', '2017-10-30 15:13:08', '通天塔', NULL, NULL, NULL, '3而威尔', '染色体我', '只要学不死,就往死里学!6', '杨真 资深软件架构师 曾就职于Sun中国工程研究院,负责Java 虚拟机的定制开发工作;之后就任腾讯无线部门技术负责人,引领开发了第一版的欢乐斗地主、QQ空间移动版及QQ音乐;2013年自主创业并任公司CTO,开发了多款基于爬虫、大数据及搜索引擎的商业应用及产品。06年硕士毕业于北京航空航天大学计算机专业,一直从事软件研发工作,具备丰富的互联网产品研发经验
\r\n', 'http://www.zsf.com6', NULL, 'fdhd', NULL, NULL, NULL, 'IT行业6', '乌鲁木齐', '乌鲁木齐', NULL, NULL, '2017-10-30 15:13:08');
+INSERT INTO `tb_user` VALUES (19, '5086539099', '2017-11-07 21:53:42', '用户st32ih93hu', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'http://weibo.com/5086539099/info', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2017-11-07 21:53:42');
+INSERT INTO `tb_user` VALUES (20, 'caiyuyu', '2017-11-10 10:29:17', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2017-11-10 10:29:17');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for tb_weibo_user
+-- ----------------------------
+DROP TABLE IF EXISTS `tb_weibo_user`;
+CREATE TABLE `tb_weibo_user` (
+ `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
+ `weibo_id` varchar(64) NOT NULL COMMENT '微博帐号id',
+ `username` varchar(30) NOT NULL COMMENT '绑定的帐号',
+ `access_token` varchar(100) NOT NULL COMMENT '微博授权token',
+ `state` int(11) NOT NULL DEFAULT '1' COMMENT '状态 1:正常',
+ `create_time` datetime NOT NULL COMMENT '创建时间',
+ `update_time` datetime NOT NULL COMMENT '更新时间',
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='微博用户表';
+
+-- ----------------------------
+-- Records of tb_weibo_user
+-- ----------------------------
+BEGIN;
+INSERT INTO `tb_weibo_user` VALUES (1, '5086539099', '5086539099', '2.00NLbOYFVADmcBf3ed2938f50oaTRQ', 0, '2017-11-07 21:53:42', '2017-11-07 21:53:42');
+INSERT INTO `tb_weibo_user` VALUES (2, '5086539099', 'caiyuyu', '2.00NLbOYFVADmcBf3ed2938f50oaTRQ', 1, '2017-11-07 21:54:03', '2017-11-07 21:54:03');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for u_permission
+-- ----------------------------
+DROP TABLE IF EXISTS `u_permission`;
+CREATE TABLE `u_permission` (
+ `id` bigint(20) NOT NULL AUTO_INCREMENT,
+ `url` varchar(256) DEFAULT NULL COMMENT 'url地址',
+ `name` varchar(64) DEFAULT NULL COMMENT 'url描述',
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Table structure for u_role
+-- ----------------------------
+DROP TABLE IF EXISTS `u_role`;
+CREATE TABLE `u_role` (
+ `id` bigint(20) NOT NULL AUTO_INCREMENT,
+ `name` varchar(32) DEFAULT NULL COMMENT '角色名称',
+ `type` varchar(10) DEFAULT NULL COMMENT '角色类型',
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Table structure for u_role_permission
+-- ----------------------------
+DROP TABLE IF EXISTS `u_role_permission`;
+CREATE TABLE `u_role_permission` (
+ `rid` bigint(20) DEFAULT NULL COMMENT '角色ID',
+ `pid` bigint(20) DEFAULT NULL COMMENT '权限ID'
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Table structure for u_user
+-- ----------------------------
+DROP TABLE IF EXISTS `u_user`;
+CREATE TABLE `u_user` (
+ `id` bigint(20) NOT NULL AUTO_INCREMENT,
+ `nickname` varchar(20) DEFAULT NULL COMMENT '用户昵称',
+ `email` varchar(128) DEFAULT NULL COMMENT '邮箱|登录帐号',
+ `pswd` varchar(32) DEFAULT NULL COMMENT '密码',
+ `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+ `last_login_time` datetime DEFAULT NULL COMMENT '最后登录时间',
+ `status` bigint(1) DEFAULT '1' COMMENT '1:有效,0:禁止登录',
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Records of u_user
+-- ----------------------------
+BEGIN;
+INSERT INTO `u_user` VALUES (15, '系统管理员', 'sysadmin@qq.com', 'ewrwerwr', '2017-11-05 12:09:06', '2017-11-29 12:09:09', 1);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for u_user_role
+-- ----------------------------
+DROP TABLE IF EXISTS `u_user_role`;
+CREATE TABLE `u_user_role` (
+ `uid` bigint(20) DEFAULT NULL COMMENT '用户ID',
+ `rid` bigint(20) DEFAULT NULL COMMENT '角色ID'
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+SET FOREIGN_KEY_CHECKS = 1;
diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml
index cf56ead..eed1d6a 100644
--- a/src/main/resources/logback-spring.xml
+++ b/src/main/resources/logback-spring.xml
@@ -51,4 +51,7 @@
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/static/css/main-red-light.css b/src/main/resources/static/css/main-red-light.css
index ef8404f..3f541f8 100644
--- a/src/main/resources/static/css/main-red-light.css
+++ b/src/main/resources/static/css/main-red-light.css
@@ -16221,7 +16221,7 @@ html {
background-color: #eb402d;
color: #fff;
}
-.teacherAbout {
+.userAbout {
padding-top: 16px;
margin: 0;
}
diff --git a/src/main/resources/static/images/0548491aa7e5403534.jpg b/src/main/resources/static/images/0548491aa7e5403534.jpg
deleted file mode 100644
index 71bf94f..0000000
Binary files a/src/main/resources/static/images/0548491aa7e5403534.jpg and /dev/null differ
diff --git "a/src/main/resources/static/images/19876785c34d6a348876(\345\211\257\346\234\254).png" "b/src/main/resources/static/images/19876785c34d6a348876(\345\211\257\346\234\254).png"
new file mode 100644
index 0000000..647626a
Binary files /dev/null and "b/src/main/resources/static/images/19876785c34d6a348876(\345\211\257\346\234\254).png" differ
diff --git a/src/main/resources/templates/400.ftl b/src/main/resources/templates/400.ftl
new file mode 100644
index 0000000..bb3f8ad
--- /dev/null
+++ b/src/main/resources/templates/400.ftl
@@ -0,0 +1,18 @@
+
+
+<#include "common/head.ftl">
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/templates/404.ftl b/src/main/resources/templates/404.ftl
new file mode 100644
index 0000000..bebd02c
--- /dev/null
+++ b/src/main/resources/templates/404.ftl
@@ -0,0 +1,20 @@
+
+
+<#include "common/head.ftl">
+
+
+
+
+ 404 该内容不存在或已被删除!
+
+
+
+
该内容似乎已经被删除。
+
请确认您的来源链接是否正确?
+
返回首页 >
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/templates/500.ftl b/src/main/resources/templates/500.ftl
new file mode 100644
index 0000000..344b56c
--- /dev/null
+++ b/src/main/resources/templates/500.ftl
@@ -0,0 +1,18 @@
+
+
+<#include "common/head.ftl">
+
+
+
+
+ 500 服务器异常,请稍后再试!
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/templates/common/alert-notice.ftl b/src/main/resources/templates/common/alert-notice.ftl
index b6d74f6..476843d 100644
--- a/src/main/resources/templates/common/alert-notice.ftl
+++ b/src/main/resources/templates/common/alert-notice.ftl
@@ -1,3 +1,4 @@
+<#--
\ No newline at end of file
+
-->
diff --git a/src/main/resources/templates/common/course-detail-main-unpaid.ftl b/src/main/resources/templates/common/course-detail-main-unpaid.ftl
index 7ea32f0..f6b42ec 100644
--- a/src/main/resources/templates/common/course-detail-main-unpaid.ftl
+++ b/src/main/resources/templates/common/course-detail-main-unpaid.ftl
@@ -9,9 +9,9 @@
( ${lessonCount!''} )
- class="active"#if>>
+ <#-- class="active"#if>>
听课须知
-
+ -->
class="active"#if>>
往期评论
( 1 )
diff --git a/src/main/resources/templates/common/course-sidebar.ftl b/src/main/resources/templates/common/course-sidebar.ftl
index c922b70..b8cfd68 100644
--- a/src/main/resources/templates/common/course-sidebar.ftl
+++ b/src/main/resources/templates/common/course-sidebar.ftl
@@ -9,24 +9,24 @@
diff --git a/src/main/resources/templates/common/footer.ftl b/src/main/resources/templates/common/footer.ftl
index eace8cd..331e19a 100644
--- a/src/main/resources/templates/common/footer.ftl
+++ b/src/main/resources/templates/common/footer.ftl
@@ -70,7 +70,7 @@
+
+
+
+ <#include "../common/alert-notice.ftl">
+
+ <#--<#include "../common/header-login.ftl">-->
+ <#include "../common/header.ftl">
+
+
+
+
+ <#include "user-tabs.ftl">
+
+
+ <#list courseList as course>
+
+
+
+
+
+
+
+ 231
+
+
+
+ ${(course.coursePrice)!}
+
+
+
+
+
+ #list>
+ <#--
+
+
+
+
+
+
+ 1336
+
+
+
+
+ 免费
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 840
+
+
+
+ 899.00
+
+
+
+
+
+
+
+
+
+
+
+
+ 1637
+
+
+
+
+ 免费
+
+
+
+
+
+
+
+
+
+
+
+
+ 1269
+
+
+ 899.00
+
+
+
+
+
-->
+
+
+
+
+
+
+
+
+ <#include "../common/footer.ftl">
+
+
+
+<#include "../common/sidebar.ftl">
+
+
+
+<#include "../common/login-modal.ftl">
+
+
+