Coursera作业Python文件编译错误。

4
我在Jupyter Notebook中有一个Coursera作业,问题是在Jupyter中它能够正确运行,但是当我提交时失败并显示以下错误:
无法编译学生的代码。invalid syntax (student_solution.py, line 23)
任务是:
在这个练习中,您将尝试构建一个神经网络,根据一个简单的公式来预测房屋的价格。
因此,想象一下,如果房价就像一个房子成本为50k+每间卧室50k,那么一间卧室的房子成本为100k,两间卧室的房子成本为150k等。
如何创建一个神经网络,学习这种关系,以便它会预测一个7卧室的房子成本接近于400k等。
提示:如果你把房价缩小,你的网络可能会更好地工作。你不必给出答案400......创建一个预测数字4的东西可能会更好,然后你的答案在“数十万”等级上。
我的回答是:
import tensorflow as tf
import numpy as np
from tensorflow import keras
def house_model(y_new):
   xs = np.array([1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0], dtype=float)
   ys = np.array([100.0, 150.0, 200.0, 250.0, 300.0, 350.0, 450.0, 500.0, 550.0,600.0, 650.0,700.0], dtype=float)

   model = tf.keras.Sequential([keras.layers.Dense(units=1, input_shape=[1])])
   model.compile(optimizer='sgd',loss='mean_squared_error')
   model.fit(xs,ys,epochs=500)

   return (model.predict(y_new)[0]+1) //100
prediction = house_model([7.0])
print(prediction)

你的代码缩进是否与提交时一致?请检查。 - dspencer
那么,你得到了什么错误信息? - dspencer
当我在Jupyter中运行代码时,它可以正确地运行而没有任何错误,但是当我在Coursera上提交时,它会显示我的答案不正确,并显示以下消息:“无法编译学生的代码。无效语法(student_solution.py,第23行)”。 - eya_bklt
鉴于您上面的代码片段没有23行,请问哪一行出现了问题? - dspencer
第4行 def house_model(y_new): - eya_bklt
显示剩余3条评论
5个回答

8

只需移除最后两个 JavaScript 块即可,这对我有效。


1
请具体说明 - 您指的是哪种JavaScript? - dspencer
我遇到了同样的问题,你能详细解释一下吗? - bramasta vikana
1
我可以确认这个有效,尽管我有点不明白为什么。所涉及的 JavaScript 是笔记本末尾以 "%%javascript" 开头的两个块。看起来 Jupyter 解析这种类型的块和评分器的方式可能存在不匹配。 - Samuel Henderson

0
请将您的代码中的 ys 数据更改为这个。
xs = np.array([1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0], dtype=float)
   
ys = np.array([1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.5, 5.0, 5.5,6.0, 6.5,7.0], dtype=float)

0

当提供ys值(100.0,150.0..)时,最好使用十分之一的比例,如(1.0,1.5...) 然后在下一个块中,您可以按以下方式操作:

   prediction = house_model([7.0])
   print(prediction*100)

很高兴,它对我起作用了。


0

尝试注释掉笔记本中不属于您提交部分的代码,即第5个和第6个单元格的最后一部分。


这是我的工作链接:https://drive.google.com/file/d/1zzqCouah-vPWHwykQOmBY_jdTHwbpOUe/view?usp=sharing - eya_bklt

0
这个问题发生在我使用 Jupyter 魔法命令(例如 %%time)的代码单元格中,所以如果你也有类似的魔法命令,可以尝试删除它们。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接